본문 바로가기

Programing30

C# Delegate ≒ C 함수 포인터 ?!? Delegate라는 개념은 C#을 하면서 처음 들어 봄. C언어의 함수 포인터를 C#에서 구현한것이라고 생각하면 된다라는 설명을 들었음(정확한 설명인지는 잘 모르겠음), C언어에서 배운 함수 포인터에 대해서 기억을 하지도 못하고 있었고, 사용 방법에 대해서도 기억을 못했기에 단박에 이해 할 수 없었지만 함수 포인터와 Delegate를 검색해보니 비슷한 개념인 것 같은 느낌이 든다. - C 함수 포인터 C를 배울때 머릴 아프게 했던 포인터에 대한 개념을 알고 있어야 함(사실 지금도 안다고 자신할 수 없음...) 포인터는 특정 변수에 메모리주소를 담는것인데, 함수 포인터는 특정 함수에 대한 메모리 주소를 담는 것. 함수 포인터를 쓰는 이유는 아래 참조 사이트에 들어가면 더 자세한 설명이 있음(정리가 정말 잘.. 2017. 2. 1.
DataGridView에 Filter 생성하기 DataGridView를 사용하려하니 Filter가 필요할 것 같다는 생각이 들었다. .NET Framework 3.5에서는 Filter가 제공되지 않고 (최신 프레임워크에는 간단하게나마 필터가 제공된다는 걸 들었던것 같다.) 인터넷을 검색해보니 몇가지 방법이 제시되어있지만 만족할만한 정보를 찾을 순 없었다. 아쉽게나마 Filter를 적용 할 수 있는 방법은 아래와 같다. - DataView.RowFilter() : DataGirdView에 넣을 데이터를 DataTable 형식으로 갖고 있다면 DataView로 만들어 RowFilter를 이용하여 Filter를 적용하고 DataView를 DataGridView에 넣으면 된다. DataView dv = new DataView([데이터 Table]); dv... 2017. 1. 31.
get{}set{} 사용 get{} set{] 사용하는 방법에 대해서 한정적으로 알고 있었던것 같음. 다른 코드를 보니 get set을 다양하게 사용하고 있음. 프로그램적으로 어떤 차이가 있는지에 대해서는 앞으로 공부를 해야하겠지만.. get, set은 변수값을 설정또는 return해줄때 작성한 코드를 거쳐서 사용하는것 같음. public string name{ get { } set { } } 위와 같이 사용하면 해당 class의 name을 호출할때 get내부에 작성한 코드에 따라 데이터를 return하고, set은 입력받은 value를 set에 작성한 code에 따라 데이터를 setting할 수 있음. 어떻게보면 변수를 호출해서 사용하는데 중간에 함수를 자동으로 태워 원하는 결과를 뽑아서 변수에 담아 사용 할 수 있는것임. 이.. 2017. 1. 24.
AS를 이용한 안전한 캐스팅 캐스팅을 하기 위해 흔히 아래와 같이 변수 앞에 괄호을 열고닫으면서 캐스트할 형식을 넣어 캐스팅하곤 함. (캐스팅할 Type)Object 위와 같은 경으 InvalidCastException이 발생할 수 있음. 예외를 Throw시키지 않기 위해서 사용하는 연산자가 as와 is임. as의 경우 실제로 캐스트 값을 반환하며, is의 경우 성공 여부를 bool값으로 반환함. as와 is는 아래와 같이 사용 가능함 결과를 담을 변수(bool / type) = obejct is/as 캐스팅할 Type; 2017. 1. 20.