분류 전체보기 (62) 썸네일형 리스트형 C# 무명 메서드 / 람다식 / 익명타입 1. 무명 메서드 C#에는 미리 정의 하지 않아도 되는 메서드명이 없는 무명 메서드를 지원한다. 델리게이트와 같이 사용하며 재사용하지 않는 일회성 메서드로 활용하는데 용이하다. 작성 형식은 델리게이트를 선언 후 동일한 형식의 매개변수와 뒤에 코드블럭을 작성한다. 2. 예제 2개의 int형 매개변수를 받아 더하는 무명 메서드를 구현한 예제이다. delegate를 선언한 후 해당 delegate의 인스턴스에 무명 메서드를 생성한다. 사용시 인스턴스명으로 사용하게 된다. 3. 람다식 람다식은 익명함수를 표한하는데 사용된다. (파라미터) => { 실행 문장 블럭 }; 으로 사용하며 파라미터는 0개~N개 까지 적용할 수 있다. 람다식은 미리 선언되어 있는 델리게이트와 같이 사용하게 된다. 종류로는 Func , A.. C# 인터페이스 1. 인터페이스 인터페이스는 클래스와 비슷하게 메서드, 속성, 이벤트, 인덱서 등을 가지고 있지만 이것을 구현하지 않고 정의만 한다. 클래스에 인터페이스를 적용하여 클래스는 인터페이스에 정의된 모든것의 구현을 강제한다. 추상 클래스와 개념적인 부분은 비슷하지만 다른점은 다중 상속의 유무이다. 하나의 클래스는 여러개의 인터페이스를 구현할 수 있다. 2. 정의법 인터페이스의 경우 class 처럼 namespace 내부에 선언되며 interface 키워드를 사용하여 작성한다. 위 예제 처럼 두개의 인터페이스를 하나의 클래스인 Program 에게 구현 할 수 있다. 또한 구현을 강제하기 때문에 적용된 인터페이스의 구성요소가 구현되어 있지 않은 경우 에러를 발생 시킨다. 추가. 인터페이스의 사용 인터페이스는 공통.. C# 제네릭 1. 제네릭 여러가지 동작에 대응하는 타입을 확정하지 않고 타입 파라미터로 받아들이도록 클래스를 정의하는 것. 일부 데이터 타입으로 인한 중복 클래스 생성을 하지 않아도 된다. 적용의 경우 클래스, 인터페이스, 메서드에도 가능하다. 제네릭을 적용한 예제이다. MyStack 클래스를 제네릭으로 선언한뒤 내부 메서드의 매개변수 및 타입도 제네릭으로 선언하여 객체 생성타입에 따라 다른 타입을 가지는 객체로 만들어지도록 구현하였다. int 로 생성된 numberstack과 string 으로 생성된 nameStack에 각각 데이터를 넣고 출력하는 예제이다. 2. 제네릭 타입 제약 제네릭 타입을 선언할 때, value 타입인지 Reference 타입인지 클래스 파생, 인터페이스 구현 등을 지정할 수 있는데, 이는 .. C# static / 정적 메소드 1. static 메서드 Static 메서드는 객체를 생성하지 않고 직접 호출하는 메서드이다. 컴파일시 메모리에 곧바로 올라가기 때문에 객체를 생성하지 않고 사용할 수 있다. 또한 메서드 내부에서 클래스의 인스턴스 객체의 멤버를 참조해서는 안된다. Car 클래스에 MaxSpeed와 MinSpeed 를 구현한 예제이다. Max는 일반 메서드, Min은 static 메서드로 구현하였다. MaxSpeed의 경우 new로 객체를 생성한 후 사용해야하는 반면 MinSpeed는 클래스.메서드명 으로 사용된 것을 볼수 있다. 2. static 속성, 필드 static 속성 및 필드의 경우 클래스가 처음으로 사용될 때 한번 초기화되어 계속 동일한 메모리를 사용하게 된다. static 속성 및 필드를 구현한 예제이다. .. C# 파생 클래스, 추상 클래스 1. 파생클래스 C#은 부모 클래스인 부모 클래스(Base Class)를 상속하여 자식 클래스(Derived Class)를 만들 수 있다. 상속을 사용하게 되면 Base 클래스의 데이터 및 메서드를 사용할 수 있게 된다.(public 또는 protected로 선언되어야 한다.) 자식 클래스는 여러개의 부모클래스를 상속받을 수 없고 하나의 부모 클래스만 상속 받을 수 있다. 2. 작성법 상속에 대한 규칙으로는 class 자식 : 부모 와 같이 작성한다. 해당 간단한 예제는 Car 클래스를 상속 받은 Avante 클래스를 구현한 것이다. Avante클래스에서 _price 필드를 상속 받아 재사용한 케이스이다. 1. 추상 클래스 C# 에서 추상클래스는 클래스를 만드는 도면으로 생각할 수 있다. public a.. C# 접근제한자 1. 접근제한자 클래스, 메소드, 변수, 구조체 등의 외부 접근을 제어하는 접근제한자이다. 사용은 public class Exam {} 과 같이 선언부의 제일 첫번째에 작성한다. 또한 클래스는 모든 접근제한자를 가질 수 있지만, 구조체의 경우 상속이 되지 않으므로 3가지의 접근 제한자만 허용한다. 2. 접근 제한자 디폴트 접근 제한자를 선언하지 않을 경우 다음과 같은 각 유형에 디폴트 접근 제한자를 가지게 된다. 클래스, 구조체, 인터페이스 : internal 클래스의 멤버, 중첩된 유형의 멤버 : private enum, 구조체 . enum . 인터페이스의 멤버 : public 3. 접근 제한자 사용 public은 모든 외부의 호출에 대해 제한사항이 없다. Car 클래스의 내부 변수 _carName과 .. C# 인덱서 1. 인덱서 정의 C# 인덱서는 클래스 객체의 데이터를 배열의 형태로 인덱스를 사용해 접근할 수 있게 해준다. 2. 인덱서 작성법 Cars 클래스의 내부의 변수 name과 price를 선언했다. 또한 this [] 를 사용하여 객체에 대한 인덱스를 선언하였다. get 과 set를 선언하고 인덱스에 따라 값을 리턴하거나 set 하는 코드를 내부에 구현한 예제이다. Main 메소드에서 객체를 생성하고 인덱스를 통해 set 한 후 Console.WriteLine 을 통해 출력한 예제이다. C# 전처리기 1. 전처리기 지시어 C# 전처리기 지시어는 실제 컴파일이 시작되기 전에 컴파일러에게 특별한 명령을 미리 처리하도록 지시하는 것이다. 모든 C#의 전처리기 지시어는 #으로 시작한다. 또한 명령어기 때문에 ;은 붙이지 않는다. 조건을 설정하여 컴파일시 특정 블록을 처리하는데 사용한다. 2. 지시어 종류 #define : 심볼을 정의한다. #undef : 심볼을 해제한다. #if, #elif, #else, #endif : 조건문 #warning, #error : #warning은 경고 메시지 출력 후 컴파일은 계속 진행된다. #error는 오류 메시지를 출력하고 컴파일을 중지 시킨다. #region, #endregion : 코드블럭을 논리적으로 묶는다. 3. 예제 #define으로 DEBUG를 선언한다. 이.. 이전 1 2 3 4 5 6 ··· 8 다음 목록 더보기