VisualStudio 91

[WPF] 사용자 정의컨트롤 디펜던시프로퍼티(DependencyProperty)

디펜던시프로퍼티 사용자 정의컨트롤을 만들어 사용 할 때 사용자 정의 컨트롤의 속성을 접근하여 get set을 하기 위한 프로퍼티 이다. 사용방법 정의컨트롤 생성 디펜던시 프로퍼티 생성 방법 PROPDP + Tab + Tab 하면 나오는 초기 디펜던시 프로퍼티 public int MyProperty { get { return (int)GetValue(MyPropertyProperty); } set { SetValue(MyPropertyProperty, value); } } // Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... public static re..

VisualStudio/WPF 2023.01.05

[C#] Action.Invoke() vs Action() 차이

action.Invoke는 action?.Invoke와 같이 action 콜백이 null인지 검사하고 null이 아닐 때에만 Invoke 되도록 사용하고자 할 때 많이 사용한다. 기존 예외처리 if(_action !=null) _action.Invoke(3);// _action(3) 과 같은 코드 ? 키워드를 사용 한 예외처리 _action?.Invoke(3); //if(_action !=null)를 ?키워드를 사용하여 null임을 체크할 수 있다. action(); 는 action.Invoke()와 컴파일과정이 100프로 동일 하다. action이 null이면 NullReferenceException을 뱉기 때문에 위험하다 그래서 invoke를 사용하기 전에 null 검사를 해야 하며 기존 예외처리 처..

VisualStudio/C# 2023.01.05

[C#] nameof()와 default(T)

nameof 변수, 형식 또는 멤버의 이름을 문자열 상수로 생성합니다. string NameOfTest { get; set; } static void Main(string[] args) { string nameofTest = ""; Console.WriteLine(nameof(nameofTest)); Console.WriteLine(nameof(NameOfTest)); } default(T) 기본값 식은 형식의 기본값을 생성합니다. 기본값 식에는 두 가지가 있습니다. 기본 연산자 호출 및 기본 리터럴. Value 일 때는 0을 Ref일 때는 null을 반환한다. public T Test(bool check) { if(check == false) return default(T); return T; }

VisualStudio/C# 2023.01.05

[C#] ? ?? 연산자

이전 포스팅에서는 숫자형과 불리언 타입의 변수에 null을 대입할 수 있는 Nullable 타입을 소개했습니다. 이번 포스팅에서는 null과 관련된 연산자들을 정리합니다. 목차 ?? 연산자 ??= 연산자 ?. 연산자 ?[] 연산자 ?? 연산자 피연산자가 null이 아닌 경우 왼쪽 피연산자의 값을 반환합니다. 피연산자가 null일 경우에는 오른쪽 피연산자의 값을 반환합니다. a ?? b; a가 null이면, b가 반환됩니다. a가 null이 아니면 a가 반환됩니다. ?? 연산자 사용 방법 int? a = null; // a가 null이므로 오른쪽 피연산자(29)가 반환됩니다. int b = a ?? 29; Console.WriteLine(b); 실행 결과 ??= 연산자 왼쪽 피연산자가 null일 경우 오른..

VisualStudio/C# 2023.01.03

[WCF] AppConfig 설명

이전 강좌에서는 간단한 Hello World 서비스를 작성해 보았고 그에 관련된 사항들을 살짝 맛보기로 살펴보았다. 하지만 이전 컬럼에서 작성한 코드를 살펴보면 상당히 불만족스러운 사항을 발견한 독자들이 있을 것이다. 예전에 ASP.NET으로 웹 서비스와 그 클라이언트를 작성해 본 독자라면 더더욱 그러할 것이다. 필자가 예상할 수 있는 불만사항은 이렇다. 뭐가 그렇게 복잡하게 코딩이 많이 들어가는가와 서비스의 주소나 바인딩 설정 등 하드 코딩 된 부분이 많다는 점일 것이다. 서비스의 주소를 서비스와 클라이언트가 코드 상에 직접 하드코드 하여 명시한 것과 MessageEncoding 속성 역시 코드 상에서 고정시켰던 것을 상기하면 무엇이 문제인지 알 수 있을 것이다. ASP.NET 웹 서비스 개발 경험자에..

VisualStudio/WCF 2023.01.03