사용자 도구

사이트 도구


language:csharp:프로그래밍-가이드

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
language:csharp:프로그래밍-가이드 [2013/12/24 11:13] – [enum] kieunslanguage:csharp:프로그래밍-가이드 [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +====== 프로그래밍 가이드 ======
  
 +|< 90% >|
 +| [[http://msdn.microsoft.com/ko-kr/library/67ef8sbd.aspx?appId=Dev10IDEF1&l=KO-KR&k=k(USING_CSHARPKEYWORD);k(TargetFrameworkMoniker-".NETFRAMEWORK&k=VERSION=V2.0");k(DevLang-CSHARP)&rd=true|C# Programming Guide(kr)]] |
 +| [[http://msdn.microsoft.com/ko-kr/library/gg145045.aspx|닷넷 4.5 클래스 라이브러리]] |
 +
 +코드는 [[language:csharp:코드-조각|코드 조각]]에
 +
 +====== 문법 ======
 +
 +===== 람다 =====
 +
 +  * 익명함수. 델리게이트와 유사하지만 ..
 +  * C#에서 델리게이트 함수를 넣기 애매한 곳에 인자로 받도록 구성되어 있다.
 +  * REF : [[https://msdn.microsoft.com/ko-kr/library/bb397687.aspx|람다 식(C# 프로그래밍 가이드)]]
 +
 +  * List.FindIndex(Predicate<T>..) 에서 Predicate 함수를 람다식으로 대치 가능
 +
 +<code csharp>
 + List<int> abc; 
 + abc.FindIndex( x => x == 5 ); // 리스트에서 5와 같은 인덱스를 찾는다.
 +</code>
 +
 +  * 표현 식<sup>expression lambda</sup>으로만 사용되는 람다
 +
 +<code csharp>
 +//
 +// (input parameters) => expression
 +//
 +
 +x => x == 5 // 하나의 입력값이면 이렇게.
 +  
 +(x, y) => x == y // 둘 이상의 입력 매개 변수는 다음과 같이 괄호로 묶고 쉼표로 구분해야 합니다
 +  
 +(int x, string s) => s.Length > x // 입력값의 타입 유추가 어려운 경우, 타입을 알려줄 수 있다
 +  
 +() => SomeMethod() // 입력값이 없다면 빈괄호를 추가
 +</code>
 +
 +==== _ 는 뭣인가? ====
 +
 +  * 람다 함수식에서 사용 되며, 파라미터에 신경 쓰지 않겠다는 뜻. 그냥 %%()%% 쓰나 %%_%% 쓰나...
 +===== enum =====
 +
 +<code csharp>
 +// public 이 기본인가? 기억이..
 +//
 +public enum OpType : int {
 +  BEGIN, PLUS, MINUS, MULTIPLY, END
 +  };
 +
 +// enum <이름> : <타입> { 의 형식으로 선언하는데
 +// 타입을 추가하여도 사용할 때는 타입 캐스팅이 필요하다.
 +//
 +int now_optype = (int)OpType.MINUS;
 +</code>
 +
 +==== enum Length ====
 +
 +<code csharp>
 +var myEnumMemberCount = System.Enum.GetNames(typeof(MyEnum)).Length;
 +</code>
 +===== interface, abstract, class =====
 +
 +  * 개념 정리 참고 : [[http://fantasic.tistory.com/18|인터페이스,추상클래스,클래스]]
 +
 +인터페이스
 +
 +  * 가장 기본적으로 가질 수 있는 공통 메소드를 포함하는 것
 +  * 일반 클래스에서 상속해서 사용
 +
 +  * 함수 원형 선언 가능
 +  * 변수선언, 함수 정의 불가능
 +  
 +
 +추상클래스
 +
 +  * 하는 일은 비슷하지만 구현 내용이 다를때
 +
 +  * 변수 선언 가능
 +  * 함수 정의 가능
 +  * 함수 원형만 선언 가능
 +
 +==== 상속 관계 ====
 +
 +| 인터페이스 | -> | 인터페이스 | 가능   |
 +| :::        | -> | 추상클래스 | 가능   |
 +| :::        | -> | 일반클래스 | 가능   |
 +| 추상클래스 | -> | 일반클래스 | 가능   |
 +| :::        | -> | 추상클래스 | 가능   |
 +| 일반클래스 | -> | 추상클래스 | 가능   |
 +| :::        | -> | 일반클래스 | 가능   |
 +| 추상클래스 | -> | 인터페이스 | 불가능 |
 +| 일반클래스 | -> | 인터페이스 | 불가능 |