사용자 도구

사이트 도구


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

프로그래밍 가이드

문법

람다

  • 익명함수. 델리게이트와 유사하지만 ..
  • C#에서 델리게이트 함수를 넣기 애매한 곳에 인자로 받도록 구성되어 있다.
  • List.FindIndex(Predicate<T>..) 에서 Predicate 함수를 람다식으로 대치 가능
	List<int> abc; 
	abc.FindIndex( x => x == 5 ); // 리스트에서 5와 같은 인덱스를 찾는다.
  • 표현 식expression lambda으로만 사용되는 람다
//
// (input parameters) => expression
//
 
x => x == 5 // 하나의 입력값이면 이렇게.
 
(x, y) => x == y // 둘 이상의 입력 매개 변수는 다음과 같이 괄호로 묶고 쉼표로 구분해야 합니다
 
(int x, string s) => s.Length > x // 입력값의 타입 유추가 어려운 경우, 타입을 알려줄 수 있다
 
() => SomeMethod() // 입력값이 없다면 빈괄호를 추가

_ 는 뭣인가?

  • 람다 함수식에서 사용 되며, 파라미터에 신경 쓰지 않겠다는 뜻. 그냥 () 쓰나 _ 쓰나…

enum

// public 이 기본인가? 기억이..
//
public enum OpType : int {
  BEGIN, PLUS, MINUS, MULTIPLY, END
  };
 
// enum <이름> : <타입> { 의 형식으로 선언하는데
// 타입을 추가하여도 사용할 때는 타입 캐스팅이 필요하다.
//
int now_optype = (int)OpType.MINUS;

enum Length

var myEnumMemberCount = System.Enum.GetNames(typeof(MyEnum)).Length;

interface, abstract, class

인터페이스

  • 가장 기본적으로 가질 수 있는 공통 메소드를 포함하는 것
  • 일반 클래스에서 상속해서 사용
  • 함수 원형 선언 가능
  • 변수선언, 함수 정의 불가능

추상클래스

  • 하는 일은 비슷하지만 구현 내용이 다를때
  • 변수 선언 가능
  • 함수 정의 가능
  • 함수 원형만 선언 가능

상속 관계

인터페이스 인터페이스 가능
추상클래스 가능
일반클래스 가능
추상클래스 일반클래스 가능
추상클래스 가능
일반클래스 추상클래스 가능
일반클래스 가능
추상클래스 인터페이스 불가능
일반클래스 인터페이스 불가능
language/csharp/프로그래밍-가이드.txt · 마지막으로 수정됨: 2024/04/23 22:44 저자 127.0.0.1