프로그래밍 관련/C#
C# 강좌 21편. 프로퍼티(Property)
C# 강좌 21편. 프로퍼티(Property)
2012.10.201. 프로퍼티(Property) 프로퍼티(Property)는 속성이란 의미를 가지고 있습니다. 이 프로퍼티를 사용하게 되면, 속성 값을 반환하거나 새 값을 할당할 수 있습니다. 우리가 클래스를 하나 만들다가 필드를 public으로 선언할지, private으로 선언할지 고민하시는 분들이 간혹 있습니다. public으로 선언하려 했다가는, 이 필드가 어느순간 잘못된 값으로 지정되어 프로그램이 제대로 동작하지 않을지도 모릅니다. 이번엔 private로 선언하자니, 접근하는 방법이 public보다 까다로워 여간 귀찮은게 아닙니다. 이렇게 은닉성과 편의성을 고려하다, 편의를 버리고 private로 선언했다고 해봅시다. class MyClass { private int Field; public int GetFiel..
C# 강좌 20편. 리플렉션과 애트리뷰트(Reflection and attributes)
C# 강좌 20편. 리플렉션과 애트리뷰트(Reflection and attributes)
2012.10.161. 리플렉션(Reflection) C#에서는 프로그램 실행 도중에 객체의 정보를 조사하거나, 다른 모듈에 선언된 인스턴스를 생성하거나, 기존 개체에서 형식을 가져오고 해당하는 메소드를 호출, 또는 해당 필드와 속성에 접근할 수 있는 기능을 제공하는 '리플렉션(Reflection)'이라는 녀석이 존재합니다. 오늘은 아래와 같은 메소드들을 알아보려고 합니다. 형식 메소드 설명 Type GetType()지정된 형식의 Type 개체를 가져옵니다. MemberInfo[] GetMembers() 해당 형식의 멤버 목록을 가져옵니다. MethodInfo[] GetMethods() 해당 형식의 메소드 목록을 가져옵니다. FieldInfo[] GetFields() 해당 형식의 필드 목록을 가져옵니다. 실은 이말고도 M..
C# 강좌 19편. 델리게이트와 이벤트(Delegates and Events)
C# 강좌 19편. 델리게이트와 이벤트(Delegates and Events)
2012.10.141. 델리게이트(Delegate) 오늘은 델리게이트(Delegate)에 대해서 알아보려고 합니다. 델리게이트는 한마디로 말해서 대리자라고 말할 수 있습니다. 즉, 대신 일을 해주는 녀석이라고 할 수 있겠죠? 다른 말로 해서는 메소드 참조를 포함하고 있는 영역이라고 말할 수 있습니다. 아래는 델리게이트의 선언 형식입니다.delegate 반환형 델리게이트명(매개변수..); 위의 선언 형식을 보아하니, 델리게이트가 메소드같이 생겼죠? 델리게이트는 위에서 말한 대로, 메소드의 참조를 포함합니다. '메소드를 참조한다니, 그럼 메소드를 매개변수로 넘길 수 있다는 말인가요?'라고 생각하시는 분들이 있을지 모르겠는데, 네 맞습니다. 델리게이트를 이용해서 메소드를 넘겨줄 수 있습니다. 델리게이트는 메소드를 참조 하는 것..
C# 강좌 18편. 컬렉션(Collection)
C# 강좌 18편. 컬렉션(Collection)
2012.10.131. 컬렉션(Collection) 우리가 이번 강좌에서 배우게될 '컬렉션(Collection)'이 뭐하는 녀석인지 간단히 알아봅시다. 컬렉션은 데이터의 검색과 저장을 위해 특화된 것이라고 말할 수 있습니다. 자료구조(Data Structure) 라고도 말할 수 있습니다. 컬렉션에서는 배열 리스트(Array List), 해시 테이블(Hash table), 큐(Queue), 스택(Stack) 등을 지원합니다. 하나하나 다 설명하다보면 강좌가 끝도 없이 길어질 것 같아, 간략하게 설명하겠습니다. 2. 배열 리스트(ArrayList) 배열 리스트란 배열과 가장 비슷하면서도 크기가 유연(동적)합니다. 배열 리스트에는 Add, BinarySearch, Clear, Contain, Insert, Remove, Sor..
C# 강좌 17편. 예외 처리(Exception handling)
C# 강좌 17편. 예외 처리(Exception handling)
2012.10.131. 예외 처리(Exception handling) 지금까지 강좌를 진행하면서, 그 예제를 응용하여 프로그램을 만드시면서 예외가 발생하신 적이 있나요? 여기서 예외란, 프로그램을 실행하다 도중에 예기치 않은 일이 벌어져 프로그램이 종료되는 것을 말합니다. 예를 들면 어떠한 수를 0으로 나눈다던가, 음수의 제곱근을 구하는 경우라던가, 어떤 인수의 값이 텅텅 비어있던가 등 논리적으로 어긋난 상황에 마주치면 프로그램은 어김없이 예외를 내보내고 프로그램이 종료되어버릴 것입니다. 이러한 예외 발생으로 프로그램이 종료되는 것을 막기위해 예외를 처리하는 것을 '예외 처리(Exception handling)이라고 합니다. 이제 앞으로 배울 try~catch문을 이용하여 예외를 우리가 받아 처리할 수 있습니다. 2. t..
C# 강좌 16편. 인터페이스(Interface)
C# 강좌 16편. 인터페이스(Interface)
2012.10.121. 인터페이스(Interface) 이번 강좌에서는 '인터페이스(Interface)'에 대해 알아보려고 합니다. 인터페이스라고 하니, 어디서 많이 들어보신것 같죠? 사전적 의미로는 '사용자인 인간과 컴퓨터를 연결하여 주는 장치. 키보드나 디스플레이 따위를 이른다.', '서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어 주는 부분. 또는 그런 접속 장치.'라는 의미를 담고 있습니다. 예를 들어, 키보드나 모니터 등을 사용하기 위해서 USB 포트에 연결시키면 컴퓨터가 이를 자동으로 인식하여 바로 사용이 가능하게끔 만들어줍니다. 그 외에도 프린터, 모뎀, 스캐너 등과 같은 주변기기를 손쉽게 연결하여 컴퓨터 내에서 바로 사용할 수 있습니다. USB 역시도 하나의 인터페이스이며, 두 장치를 이어주어 컴퓨..
C# 강좌 15편. 구조체(Structures) [작성 중 2018/02/18]
C# 강좌 15편. 구조체(Structures) [작성 중 2018/02/18]
2012.09.301. 구조체(Structures) C/C++에서 등장했던 구조체가 C#에서 다시 한번 등장합니다. 구조체는, 클래스와 상당히 비슷한 구조를 지니고 있습니다. 구조체는 주로 몇 가지의 항목으로 구성된 간단한 개체를 구조화하기 위해 사용됩니다. 예를 들어서, 우리가 2차원의 좌표를 나타내기 위해 Point 구조체를 만들고자 한다면 아래와 같이 나타낼 수 있습니다. struct Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; } } 위 예제를 보면 클래스와 똑같은 구조를 지니고 있습니다. 클래스와 다를게 없는 것 같은데, 어떤 부분에서 차이가 나는 것일까요? 이를 아래의 도표에서 정리해 보았습니다. (자세한 설명은 이곳..