我知道在C中我們可以用變量聲明內聯定義一個結構,以便結構類型是特定於這個變量的。這不是單獨定義類型,而是將變量聲明爲該結構類型。這在C#中可能嗎?
謝謝!
我知道在C中我們可以用變量聲明內聯定義一個結構,以便結構類型是特定於這個變量的。這不是單獨定義類型,而是將變量聲明爲該結構類型。這在C#中可能嗎?
謝謝!
這不是在C#中可能的,但是你可以定義一個匿名類型的實例是這樣的:
var x = new { SomeField = 1, SomeOtherField = "Two" };
這將有效地是相同的,給你一個類型的實例,它是特定於該變量並且不能在變量的作用域外使用。
** * *匿名類型不能從其他方法返回或傳遞給其他方法,即它們只存在於它們定義的方法範圍內。在類級別上不可能具有匿名類型的變量。 – 2011-04-07 09:48:40
@Daniel:的確,儘管我很確定相同或等同的限制適用於C中的匿名結構,實際上也適用於任何靜態類型的語言。 「如果它沒有名字,你不能提及它」。說得通。 – Avish 2011-04-07 09:52:21
@Daniel - 實際上,你可以將它傳遞給一個通用的方法,但它非常難看。它也將與*其他*匿名類型共享相同的字段,但同樣也是很醜陋的。但顯然,不是在課堂上 - 如果C++允許的話,我不認爲C#有任何相似之處。 – Kobi 2011-04-07 09:52:59
簡單的回答:不,這是不可能的。
我期待着看到一些C代碼。唉,期望沒有得到適當的滿足,我因此非常失望地克服了。 – BoltClock 2011-04-07 09:46:40
一個例子會很好。另外,爲什麼你需要這樣做,也許有另一種解決C#中的問題的方式? – 2011-04-07 09:47:46
是的,它可能在C#中,但它是這樣寫的。 – Kobi 2011-04-07 09:47:48