C\#4.0 새로운 기능 dynamic,선택 가능 한 매개 변수,명명 매개 변수 에 대한 상세 한 소개

1.dynamic Expando Object 는 js 를 잘 아 는 친구 들 이 js 를 이렇게 쓸 수 있다 는 것 을 알 고 있다.

var t = new Object();
t.Abc = ‘something';
t.Value = 243;
현재 이 js 동적 언어의 특성 은 우리 도 c\#에서 사용 할 수 있다.전 제 는 하나의 변 수 를 Expando Object 형식 으로 설명 하 는 것 이다.다음 과 같은 예:

static void Main(string[] args)
{
dynamic t = new ExpandoObject();
t.Abc = "abc";
t.Value = 10000;
Console.WriteLine("t's abc = {0},t's value = {1}", t.Abc, t.Value);
Console.ReadLine();
}
C\#4.0 에 네 임 스페이스 System.Dynamic 을 추가 하여 이 응용 에 대한 지 지 를 실현 했다.이런 용법 의 의미 가 어디 에 있 는 지 아직 잘 모 르 겠 고 c\#동적 언어 로 과도 하 는 탐색 이기 도 하 다.2.범 형 자동 변환 은 C\#4.0 이전에 아래 의 코드 를 컴 파일 할 수 없습니다

IEnumerable<object> objs = new List<string> {
        "I'm 0","I'am 1","I'am 2"
    };
.그러나 c\#4.0 에서 이러한 성명 은 허용 되 지만 범 형 인터페이스 에 만 국한 되 며 범 형 유형의 유사 한 방법 은 허용 되 지 않 습 니 다.다음 코드 는 컴 파일 오류

List<object> objList = new List<string> { 
        "I'am 0","I'am 1","I'am 2"
    };
가 있 습 니 다.이런 형식 은 고정 매개 변수의 몇 가지 방법 을 다시 싣 는 데 매우 유용 하 다.다음 호출:

static void DoSomething(int notOptionalArg,string arg1 = "default Arg1", string arg2 = "default arg2") {
    Console.WriteLine("arg1 = {0},arg2 = {1}",arg1,arg2);
}
만약 에 제 가 선택 할 수 있 는 매개 변수 와 같은 방법 으로 서명 하지 않 는 방법 이 있다 면 c\#어떻게 처리 할 지 생각 하 실 수 있 습 니 다.아래 코드

static void Main(string[] args)
{
    DoSomething(1);
    DoSomething(1, " ");
    DoSomething(1, " ", " ");
    Console.ReadLine(); 
}
를 보 겠 습 니 다.저 는 DoSomething 이라는 방법 에 두 개의 매개 변수 가 있 지만 선택 할 수 있 는 매개 변수 가 없습니다.실험 은 DoSomething(1."arg")는 선택 할 수 있 는 인자 가 없 는 방법 을 우선 실행 합 니 다.4.방법 매개 변수 이름 매개 변수 이름 매개 변 수 는 호출 방법 에서 매개 변수 이름 을 지정 하여 매개 변수 에 값 을 부여 할 수 있 습 니 다.이 경우 매개 변수의 순 서 를 무시 할 수 있 습 니 다.다음 과 같은 방법 으로 설명 한다.

static void DoSomething(int notOpArg, string arg)
{
    Console.WriteLine("arg1 = {0}", arg);
}
우 리 는 위 에서 설명 한 방법

static void DoSomething(int height, int width, string openerName, string scroll) {
    Console.WriteLine("height = {0},width = {1},openerName = {2}, scroll = {3}",height,width,openerName,scroll);
}
을 이렇게 호출 할 수 있다.이것 은 문법 사탕 이지 만 방법 적 매개 변수 가 많은 상황 에서 의미 가 있 고 코드 의 가 독성 을 증가 할 수 있다.

좋은 웹페이지 즐겨찾기