문제
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
제휴하지 않습니다 StackOverflow