2008-10-28 39 views

回答

6

是的。 vardynamic之間有很大差異。

var只是意味着「讓編譯器推斷變量的實際類型」。

dynamic變量的類型 - 所以任何地方,你可以指定一個類型,你可以指定dynamic相反,據我所知。 (我敢肯定有一些例外,但是這是基本的想法。)

編輯:克里斯陋居first blog entry on dynamic(有一個second one了;更多很快會)給出了使用dynamic所有的地方的示例類。

+0

實際上動態不是真的*類型。它只是說,直到運行時才確定實際類型。你可以在動態類型上使用「is」並找出它們的真實性。 – 2008-10-28 22:07:32

2

這書上的代碼片斷 「通過C#CLR,第三版」 顯示在行動動態:

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