今天我注意到我們可以定義一個名爲var
或dynamic
的類。首先,我認爲這是不可能的,因爲這些是特殊的關鍵字,不能作爲Class name.
使用。但後來我嘗試了它,而且我很驚訝。這是一個奇怪的現象,當我定義了兩個類:爲什麼可以定義一個名爲var或dynamic的類?
class var
{
}
class dynamic
{
}
,並利用它們是這樣的:
它不給我任何error.But當我嘗試運行我的程序它給這個錯誤:
Cannot implicitly convert type string to dynamic
但正如你可能已經注意到,我的dynamic
類表現得像一個非標準的C#class.When我試試這個:
dynamic d = new dynamic();
我得到這個錯誤:
Cannot instantiate dynamic object.
讓我們來看看var:
在這種情況下VAR仍評估爲隱式類型定義關鍵字,我的變量類型推斷爲(注意它的顏色是綠色而不是藍色,它是類名稱的顏色)。但是當我運行該程序時,它給了我同樣的例外:
Cannot implicitly convert type string to var
但有趣的是,當我嘗試創建這樣一個新的變種如:
var d = new var();
Console.WriteLine(d.GetType());
它不給我任何異常,我得到這個輸出:
ConsoleApplication3.var
現在畢竟這些我很困惑。我想知道這裏有什麼區別,爲什麼編譯器讓我們創建名爲var
和dynamic
的類,當我創建一個名爲dynami的類時,它不會給我任何錯誤c但如果我嘗試創建動態實例,我得到一個錯誤。但是,如果我嘗試創建一個var
實例,它不會給我任何錯誤。那不是讓人困惑嗎?我在等待明確的解釋。
注意:對不起我的英文和語法錯誤。
我明白了。但據我所知var關鍵字後添加了動態關鍵字。爲什麼我可以創建'var'實例,但我無法創建'動態'實例? –
@ Selman22:這對我來說很好,你一定在做錯事。 – SLaks
我看不出有什麼不對:http://imgur.com/NYEo08v –