문제

C# 4.0의 동적 변수는 클래스의 구성원이거나 방법으로 전달되거나 반환 될 수 있습니까? C# 3.0의 var는 할 수 없었지만 역동적이거나 동적이 아닌지에 대한 언급을 보지 못했습니다.

도움이 되었습니까?

해결책

무엇보다도. 나는 VPC에서 그들을 시험해 보았고 이것들을 모두 할 수있었습니다. 참조 'C#'의 새로운 기능은 여기를 참조하십시오

다른 팁

예. 사이에는 큰 차이가 있습니다 var 그리고 dynamic.

var 단지 "컴파일러가 변수의 실제 유형을 유추하게하십시오"를 의미합니다.

dynamic ~이다 변수의 유형 - 유형을 지정할 수있는 모든 곳에서는 지정할 수 있습니다. dynamic 대신, 내가 이해하는 것처럼. (나는 이것에 대한 몇 가지 예외가 있다고 확신하지만 그것이 기본적인 아이디어입니다.)

편집 : Chris Burrow 's 첫 번째 블로그 항목 dynamic (거기에 두번째 것 이미; 더 빨리 기대) dynamic 여기 저기.

"C#, 3rd Ed"책 의이 코드 스 니펫은 역동적 인 행동을 보여줍니다.

using System;
using System.Dynamic;
static class DyanmicDemo
{
    public static void Main() {
  for(Int32 demo =0; demo < 2; demo++) {
   dynamic arg = (demo == 0) ? (dynamic) 5 : (dynamic) "A";
   dynamic result = Plus(arg);
   M(result);
  }
 }
    private static dynamic Plus(dynamic arg) { return arg + arg; }
    private static void M(Int32 n) { Console.WriteLine("M(Int32): " + n); }
    private static void M(String s) { Console.WriteLine("M(String): " + s); }
}

메인을 실행하면 다음 출력을 얻습니다.

M (int32) : 10

m (문자열) : aa

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top