C# 75

예제_입문 38 Nullable형

값 형식은 null을 할당할 수 없는게 기본이지만 Nullable형은 값 형식에 null을 할당할 수 있게 해주는 형식. Hasvalue는 값이 존재한다면 true 없으면 false를 반환. 구조체의 GetValueporDefault()메소드가 존재하며 값이 존재하면 할당된 값을 반환하고 아니면 null을 반환. Nullable보단 보통 형식 앞에 ?를 붙여 사용한다. 그외 주의점 Nullable형 변수를 일반 변수에 넣으면 암시적으로 변환할수 없는 에러가 뜹니다. 그래서 Nullable형 변수를 일반 변수를 넣을려면 ??를 연산자를 사용해야 합니다. ??은 null일떄 0을 할당합니다. Nullable형은 숫자를 비교할 수 없다. 아래의 코드는 모두 false를 갖는다. Nullable형은 '값이 없다..

C#/C#예제 연습 2024.01.06

예제_입문 31 string과 stringBulider의 차이점

string 객체의 값은 한 번 만들면 변경할 수 없다. 이것을 불변(immutable)객체라고 한다. 만약 객체를 변경할 경우가 생긴다면 변경이 아닌 새로운 객체를 만들어 할당해주는 것. string 객체를 빈번하게 변경되는 경우 실행속도와 메모리 사용이 많아 질수 있다. C#은 string괴 비슷한 StringBulider클래스를 제공하는데 StringBulider는 가변 객체로 문자열이 변경되면 자동으로 필요한 메모리를 동적으로 조정하고 내용을 바꿀 수 있기 때문에 자주 변경되는 문자열을 다룰 떄는 StringBulider를 사용하자 테스트 코드

C#/C#예제 연습 2024.01.01

[GoF]24.템플릿 메서드 패턴(Template Method Pattern)

1.정의 -특정 연산을 단계별로 수행하는 행위를 기반 클래스에서 약속하고 단계별로 수행하는 구체적 구현은 파생 클래스에서 재정의하는 형태의 패턴. -프로그램 구현에 필요한 뼈대를 일반화하고 세부적인 기능을 재정의하여 설비 단계에서의 비용과 시간을 절감할 수 있다. 2.다이어그램 -EHApp클래스는 프로그램의 기반이 되는 클래스로 초기화,실행,종료, 상호작용를 기능을 약속한다. RUN 메서드는 사용자가 키를 누를 때 반응하여 기능을 실행시킨다. -MyApp클래스는 EHApp클래스를 상속받아 기능을 재정의한다. 3.구현 -EHApp구현 -MyApp구현 3.테스트

[GoF]23.전략 패턴(Strategy Pattern)

1.정의 -문제해결에 사용하는 여러 알고리즘을 객체화하여 사용할 때마다 알고리즘 객체를 바꿈으로써 문제해결에 있어 보다 나은 유연성을 제공할 수 있는 패턴. 2.다이어그램 -Picture클래스는 사진에 관한 속성을 가지고 있는 객체. -IView 인터페이스는 사진의 정보를 보여주는 View기능을 약속하여 파생 클래스에서 받은 실질적인 기능을 구 -.SimpleViewer,VerifyViewer 클래스 들은 IView 인터페이스에서 약속한 기능을 실질 구현한다. - PictureCollection 클래스 사진 객체들의 리스트를 가지고 IView들의 가지고 현재 Iview를 선택하여 사진의 속성을 보여준다. 3.구현 1.Picture클래스 2.IViewer 인터페이스 3.SimpleViewer,VerifyV..