본문 바로가기

C#

(9)
[복습]애트리뷰트 - 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..
[C# WinForm] 실시간 편의점 물품 가격변동에 따른 그래프 그리기 (Client)_(2) - 짱우의 코딩일기 - 티스토리 우선 이 글은 제목 그대로 타이머를 이용해 실시간으로 DB에 있는 데이터를 가져와 그래프를 그리는 것에 대한 글이다. 하지만 간단한 예제를 이용한게 아니라 개인 프로젝트를 진행했던 코드를 바탕으로 사용했기 때문에 밑의 링크에서 어떤 프로젝트인지 확인하고 글을 읽는 것을 추천한다. 2020/01/09 - [개인 프로젝트] C# WinForm을 이용한 실시간 편의점 물품 가격변동에 따른 그래프 그리기 - 짱우의 코딩일기 - 티스토리 [개인 프로젝트] C# WinForm을 이용한 실시간 편의점 물품 가격변동에 따른 그래프 그리기 - 짱우의 코딩일기 - 티스토리 물론 지금도 인턴이지만 회사에서 인턴기간동안 만든 과제중 하나에 대한 글을 써보려 한다. 우선 제목대로 프로젝트에서 사용한 데이터는 실제 편의점 물품의..
[C# WinForm] 실시간 편의점 물품 가격변동에 따른 그래프 그리기 (Client)_(1) - 짱우의 코딩일기 - 티스토리 우선 이 글은 제목 그대로 타이머를 이용해 실시간으로 DB에 있는 데이터를 가져와 그래프를 그리는 것에 대한 글이다. 하지만 간단한 예제를 이용한게 아니라 개인 프로젝트를 진행했던 코드를 바탕으로 사용했기 때문에 밑의 링크에서 어떤 프로젝트인지 확인하고 글을 읽는 것을 추천한다. 2020/01/09 - [개인 프로젝트] C# WinForm을 이용한 실시간 편의점 물품 가격변동에 따른 그래프 그리기 - 짱우의 코딩일기 - 티스토리 [개인 프로젝트] C# WinForm을 이용한 실시간 편의점 물품 가격변동에 따른 그래프 그리기 - 짱우의 코딩일기 - 티스토리 물론 지금도 인턴이지만 회사에서 인턴기간동안 만든 과제중 하나에 대한 글을 써보려 한다. 우선 제목대로 프로젝트에서 사용한 데이터는 실제 편의점 물품의..