본문 바로가기

C#/Study

(6)
[복습]애트리뷰트 - Attribute, C# 애트리뷰트(Attribute) 애트리뷰트는 코드에 대한 부가 정보를 기록하고 읽을 수 있는 기능이다. 주석과의 차이는 주석은 사람이 읽고 쓰는 정보고 애트리뷰트는 사람이 쓰고 컴퓨터가 읽는다는 차이점이 있다. 예제 - Deprecated Method 구현 라이브러리 업데이트로 인해 사용자가 보안 등 여러 이유로 이전 버전에서 사용하던 메서드를 사용하지 못하게 하고 새로운 메서드를 사용하게 할 때 사용 class ExampleClass1 { [Obsolete("Deprecated")] public static void OldMethod() { Console.WriteLine("Old Method"); } public static void NewMethod() { Console.WriteLine("New M..
[복습] Reflection - C#, 리플렉션 리플렉션 객체의 형식(Type) 정보를 들여다보는 기능이다. 이 기능을 이용하면 프로그램 실행 중에 객체의 형식 이름부터 프로퍼티 목록, 메서드 목록, 필드, 이벤트 목록까지 모두 열어볼 수 있다. 형식의 이름만 있다면 동적으로 인스턴스를 만들 수 있다. 새로운 데이터 형식을 동적으로 만들 수도 있다. Object.GetType() 메서드와 Type 클래스 Object는 모든 데이터 형식의 조상이기 때문에 모든 데이터 형식은 다음 메서드를 물려받는다. Equals() GetHashCode() GetType() ReferenceEquals() ToString() 위의 메서드 중 GetType() 메서드를 이용해서 객체의 형식 정보를 얻어낼 수 있다. GetType() 메서드는 Type 형식의 결과를 반환한..
[복습] 인덱서 - C# 인덱서 인덱서에서는 클래스나 구조체의 인스턴스를 배열처럼 인덱싱할 수 있다. 클래스나 구조체는 배열이 아니지만, 배열처럼 []를 사용하여 내부 필드값에 접근할 수 있다. 인덱서는 다음과 같이 사용할 수 있다. public T this[int i] { get { return arr[i]; } set { arr[i] = value; } } 간단예제 class SampleCollection { private T[] arr = new T[100]; public T this[int i] { get { return arr[i]; } set { arr[i] = value; } } } class Program { static void Main() { var stringCollection = new SampleColle..
[복습] LINQ - C#, 링크 ,링큐 배경 C# 버전 3.0에 추가된 기능 C# 버전 3.0은 Visual Studio 2008과 함께 2007년 말에 출시되었지만 언어 기능을 완전히 갖춘 버전은 .NET Framework 버전 3.5와 함께 제공됨 사용이유 private static List students = new List { new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores= new List {97, 92, 81, 60}}, new Student {First="Claire", Last="O'Donnell", ID=112, Scores= new List {75, 84, 91, 39}}, new Student {First="Sven", Last="Mortensen", ID..
[복습] Delegate - C#, CSharp, 씨샵, 델리게이트, 대리자 Delegate란? 사용방법 delegate [반환형식] [대리자이름](매개변수_목록) delegate int MyDelegate(int a, int b); Delegate는 인스턴스가 아닌 형식(Type)이다. 위의 예시에 있는 MyDelegate는 int, string과 같은 형식이며, "메서드를 참조하는 그 무엇"을 만들려면 MyDelegate의 인스턴스를 따로 만들어야 한다. 예제 - delegate의 덧셈, 뺄셈 메서드 참조 delegate int TestDelegate(int a, int b); class Calculator { public int Plus(int a, int b) { return a + b; } public static int Minus(int a, int b) { retur..
[C# 공부] Thread(쓰레드) - 비동기 호출, Delegate - 짱우의 코딩일기 - 티스토리 책을 보면서 독학을 하다가 나중에 까먹거나 헷갈릴거 같은 개념들을 적어둘 목적으로 글을 써보았다. 스레딩 System.Threading.EventWaitHandle EventWaitHandle은 Monitor 타입처럼 스레드 동기화 수단의 하나다. 스레드로 하여금 이벤트를 기다리게 만들 수 있고, 다른 스레드에서는 원하는 이벤트를 발생시키는 시나리오에 적합하다. 이때 이벤트 객체는 딱 두 가지 상태만 갖는데, 바로 Signal과 Non-Signal로 나뉘고 서로 간의 상태 변화는 Set, Reset 메서드로 전환할 수 있다. Set : Non-Signal → Signal / Reset : Signal → Non-Signal 이와 함께 이벤트 객체는 WaitOne 메서드를 제공한다. 어떤 스레드가 Wait..