728x90

전체 글 148

[C#] try ~ catch ~ finally, throw

1. try ~ catch ~ finally - try문은 반드시 최소한 1개의 catch 문 혹은 finally 문 코드 블록은 존재해야 한다. - 복수개의 catch 문을 작성할 경우 작은 범위의 예외에서 큰 범위로 작성해야 한다. - .NET Framework 2.0 부터 StackOverflowException 은 catch 블록에서 처리할 수 없고 바로 프로세스가 종료 된다. try { int number = Int32.Parse(data); Console.WriteLine("number : {0}", number); } catch (ArgumentNullException ex) //입력 인자가 없을 경우 { Console.WriteLine("ArgumentNullException 처리 : {0..

Language/C# 2020.12.23

[C#] 박싱(Boxing)과 언박싱(Unboxing)

1. 박싱(Boxing) - 값 형식(int 등)을 참조 형식(object)로 변환 하는 것을 말함. - 암시적으로 이루어져야 한다. - 힙(Heap) 영역에 저장 2. 언박싱(Unboxing) - 참조 형식을 값 형식으로 변환 하는 것을 말함. - 명시적으로 이루어져야 한다. - 스택(Stack) 영역에 저장 > 잦은 박싱, 언박싱 작업은 메모리 복사가 계속 일어나 성능에 나쁜 영향을 미침.

Language/C# 2020.12.23

[C#] const 와 readonly

1. const와 readonly - 상수를 표현할 경우 C#에서는 const 와 readonly 라는 예약어를 통해 설정 가능하다. - 공통점 > 모두 초기화 이후에는 값을 변경할 수 없다. - 차이점 > const 는 선언할 때만 초기화 할 수 있다 > readonly 는 선언할 때 또는 생성자에서 초기화 될 수 있다. - const 는 컴파일 타임 상수 readonly 는 런타임 상수로 불리기도 한다. using System; namespace ConsoleApp { class Program { public class Product { public const int ConstPrice = 1000; public readonly int ReadOnlyPrice; public Product() { th..

Language/C# 2020.12.23

[C#, 공통] 변수 및 함수 표기 방식

1. Pascal casing - ClickEvent 와 같이 각 의미있는 단어를 대문자로 시작한다. - 보통 상수, 네임스페이스, 클래스, 메서드 와 같은 이름을 지을 때 사용한다. 2. Camel casing - 첫 문자는 소문자, 나머지 의미 있는 단어들은 대문자로 시작. - 일반적으로 변수 선언시 많이 사용한다. 3. 헝가리안 표기법 - 버튼의 경우 btnSave 와 같이 특정 접두사(e.g btn)를 붙여 변수명을 만든다. - 일반적으로 컨트롤 명과 같이 특별한 구분이 필요할 때 사용하게 되며, 내장 형식(int 등) 선언에서는 피한다. 4. C#의 3가지 변수 선언 방법 1) 명시적 형식 사용 - int number = 7; - List members = new List(); 2) - C# 3..

Language/C# 2020.12.23

[C#] struct, class의 참조 형식

- C# 4.0 Tutorial을 보던 중 재미있는 부분이 있어 업로드한다. 1. Struct를 사용한 참조 - 아래 예제 코드에서 emp1의 값을 변경하여도 emp2의 값이 변경되지 않음. using System; namespace ConsoleApp { class Program { public struct Employee { public int BirthYear; public string Name; } static void Main(string[] args) { Employee emp1 = new Employee(); emp1.Name = "마타기"; emp1.BirthYear = 1994; Employee emp2 = emp1; Console.WriteLine("emp1.BirthYear : {0}..

Language/C# 2020.12.23

[C#] 데이터 바인딩 숨김

1. 데이터 바인딩 숨김(은닉) - C# 코드에서 바인딩을 만드는 것으로 조금 더 이해하기 쉬울 수 있음. using System.Windows; using System.Windows.Controls; using System.Windows.Data; namespace WpfApp1 { /// /// MainWindow.xaml에 대한 상호 작용 논리 /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Binding binding = new Binding("Text"); binding.Source = txtValue; lblValue.SetBinding(TextBlock.TextProperty,..

Language/C#_WPF 2020.12.22

[C#] 데이터 바인딩

1. 데이터 바인딩? - WPF에서의 바인딩이란 원본 데이터와 화면에 나타난 UI가 서로 연결되어 있다면, 원본 데이터의 값이 바뀌면 UI의 내용도 변경되고 UI의 내용이 변경되면 원본 데이터의 값도 자동으로 바뀌는 동기화. - 원본 데이터는 바인딩 소스, 바인딩 원본. 연결된 UI는 바인딩타겟, 목표 라고 한다. - WPF의 바인딩에서 바인드를 시킬 때, 원본 데이터를 직접 연결하지 않고 Property(속성)과 연결한다. *Property는 getter/setter를 가지고 있다. 2. 바인딩 모드 1) OneWay : 소스 데이터가 변경되면 타겟이 업데이트 2) TwoWay : 소스 또는 타겟 데이터가 변경되면 다른 한쪽을 업데이트 3) OneTime : 소스 데이터를 타겟에 반영 후 업데이트 하지..

Language/C#_WPF 2020.12.22

[C#] XAML

1. CLR(Common Language Runtime, 공통 언어 런타임) - MS 이니셔티브에서 제공하는 가상 머신의 구성요소. - .Net Framework 언어로 개발도니 프로그램 코드는 CIL(Common Intermediate Language, CIL)를 실행한다. * CIL은 바이트 코드 형태로 구성되어 있다. - CLR은 CIL 코드를 읽고 OS가 이해할 수 있는 Native Code로 변환하는 역할. > CLR은 실행 하는 환경에 최적화된 컴파일 코드를 만들고, Native Code 를 생성. - 소스코드 -> CIL Code -> Native Code의 과정은 Java를 MS에서 참조하여 .NET 프레임워크를 보강. - .NET 프레임워크에 가상머신을 추가하게 되면서 C# 뿐 아니라 다..

Language/C#_WPF 2020.12.21
반응형