CSharp

wwiki
Jhkim (토론 | 기여)님의 2021년 2월 18일 (목) 03:52 판 (대리자 형식)
이동: 둘러보기, 검색

형식 및 변수

값 형식

단순 형식

열거형 형식

구조체 형식

Nullable 값 형식

null을 허용하지 않는 형식을 T라고 한다면, 이에 대응되는 nullalbe형식 T?가 있다. string?은 string 또는 null값을 보유할 수 있는 형식이다.

튜블 값 형식

참조 형식

클래스 형식

string(UTF-16)

인터페이스 형식

배열 형식

대리자 형식(delegate)

delegate는 대표(자), 위임하다는 의미를 가지고 있다.

메서드에 대한 참조를 나타내는 형식이다. 함수 포인터와 달리 delegate는 객체지향적이며 형식이 안전하다.

한정자

internal

동일한 어셈블리의 파일 내에서만 액세스할 수 있습니다.

콜렉션

가변크기 컨테이너, Vector, ArrayList, LinkedList, HashSet, Stack, HashMap<key, value>

IEnumerable

foreach, 임의접근이 가능, 내부적으로 Enumerator를 가지고 있다.

IEnumerator

순차접근 가능(MoveNext()), 접근위치를 내부적으로 가지고 있다.

Lambda Expression(람다 표현식)

LISP에 들어 있다. λxyㆍplus(x, y) 처럼 함수를 사용하는 변수를 명시하는 표기방법이다. λ(람다)는 그리스 문자로 물리에서는 소립자의 하나이고, 부피의 단위로 100만분의 1을 나타내기도 한다.

c#에서 람다표현식을 사용해서 익명함수를 만든다.

=> : 람다 선언 연산자이다.

(input-parameter, ...) => expression
(input-parameters) => { <sequence-of-statements> }
class Program
{
    delegate int Calc(int a, int b);
  
    public static void Main(string [] args)
    {
        Calc c = (a, b) => a +b;
        int sum = c(1,1);
    }
}

Action 대리자

람다 식에서 값을 반환하지 않는 경우 Action 대리자 형식 중 하나로 변환할 수 있다.

Action hello = () => Console.WriteLine("Hello");

hell();

매개변수가 2개이고 값을 반환하지 않는 람다식은 Action<T1, T2>대리자로 변환할 수 있다.

Action<int, int> showSum = (x, y) => 
{
    int sum = x + y;
    Console.Write(sum);
}
showSum(1, 2);

Func 대리자

값을 반환하는 경우 Func대리자 형식으로 변환할 수 있다.

매개변수가 하나이고 값을 반환하는 람다식은 Func<T, TResult> 대리자로 변환할 수 있다.

Func<int> func = () => 10; // 10을 반환
int ten = func();

Func<int, int> square = (x) => x*x;
Cosole.Write(square(10)); // 100출력

LINQ(Language Integrated Query)

var value = from 익명변수명 in ~

where ...

select 추출할_항목;

라이브러리

CommandLineParser