본문 바로가기

전체 글

(42)
[C#] 문자열 04 - IsNullOrEmpty(), IsNullOrWhiteSpace() 문자열 판별하기 반드시 필요한 메서드는 아니지만 string 클래스에서는 비교적 코드를 깔끔하게 작성할 수 있도록 몇 가지 종류의 판별 메서드를 제공한다. 1. bool string.IsNullOrEmpty(string) 지정된 문자열이 null이거나 빈 문자열(길이가 0)인 경우 true를, 그렇지 않은 경우 false를 반환한다. void button_Click( object sender, EventArgs e ) { if ( !string.IsNullOrEmpty( textBox1.Text ) ) { MessageBox.Show( textBox1.Text ); } else { MessageBox.Show( "Empty." ); } } // Decompiled String.cs public static bool Is..
[WinForm] Drag & Drop으로 컨트롤과 컨트롤 간에 개체 옮기기 WinForm에서 Drag & Drop으로 파일 끌어다 놓기에 대한 포스팅을 한 적이 있다. [.NET Framework/WinForm] - [WinForm] Drag & Drop으로 파일 가져오기 [WinForm] Drag & Drop으로 파일 가져오기 파일을 마우스로 끌어서 WinForm의 RichTextBox 컨트롤에 가져다 놓으면 파일을 읽어서 내용을 RichTextBox에 출력해주는 프로그램을 만들어본다. 기본적으로 WinForm의 컨트롤은 Drag&Drop에 대한 처리가 구 cs-solution.tistory.com 이번에는 파일 뿐만 아니라 원하는 형식을 지정해서 값을 옮겨다 놓는 방법에 대해 소개하려고 한다. 먼저 WinForm에서 컨트롤과 컨트롤 간의 Drag & Drop은 ItemDra..
[WPF] MVVM 디자인 패턴 (2) 지난 포스트에서 첨부했던 코드를 분석해보자. MVVM 디자인 패턴의 세 가지 핵심 요소를 중점으로 보려고 한다. 1. Binding Binding은 MVVM의 시작이면서 끝이라고 볼 수 있는 가장 중요한 요소이다. 앞서 사용자에게 보여지는 영역인 View와 데이터의 처리 영역인 ViewModel의 관계에 있어 View는 ViewModel을 알지만 ViewModel은 View를 모른다고 설명하였다. 그렇다면 ViewModel에서 이뤄지는 데이터 처리의 결과를 어떻게 View에 나타낼 수 있을까? WPF는 Binding이라는 기술을 통해 View의 요소(컨트롤)와 ViewModel의 속성을 연결하여 데이터를 마치 동기화되듯이 주고받는 기능을 제공한다. 이를 통해 View는 ViewModel의 속성에 별도의 ..
[WPF] MVVM 디자인 패턴 (1) MVVM 디자인 패턴에 대해 알아보자. WPF & .NET Framework로 개발한다는 가정하에 설명하려고 한다. MVVM은 Model-View-ViewModel의 약자로 애플리케이션을 구성하는 요소를 모델, 뷰, 뷰 모델의 세 가지 계층으로 분리하여 각 계층 간의 결합도와 상호 의존성을 낮춤으로 분리 개발 및 유지보수에 용이하도록 하기 위한 디자인 패턴이다. 각 계층의 역할에 대한 어려운 설명은 인터넷에 검색하면 많이 나오니 참고하자. 이 글에서는 어려운 용어는 집어치우고 "그래서 각 계층을 도대체 어떻게 나누라는 건데?" 에 대해 생각해보려고 한다. MVVM 디자인 패턴으로 개발을 할 때에 딱 1가지만 기억하자. 뷰는 뷰 모델을 알지만 뷰 모델은 뷰를 알지 못하고, 뷰 모델은 모델을 알지만 모델은 ..
[C# Reflection] 런타임에 객체 생성하기 코드상에서는 단순히 MyClass obj = new MyClass()처럼 클래스의 객체를 생성할 수 있다. 런타임에서 어떤 클래스의 객체를 생성하고 싶을 땐 어떻게 해야 할까? 방법 1. Activator.CreateInstance() 인스턴스화 하고자 하는 클래스의 생성자 정보를 정확히 알고 있을 때 쓸 수 있는 방법이다. 제일 간단하다. class MyClass { public MyClass() {} public MyClass(int i) {} } static void Main(string[] args) { var obj = Activator.CreateInstance(typeof(MyClass), 1); } Activator.CreateInstance(Type, params object[]) 메서드..