2010-02-04 38 views

回答

41

對於靜態值,您可以爲實例參數傳遞null。

var type = typeof(SomeClass); 
var field = type.GetField("SomeField"); 
field.SetValue(null, 42); 
+0

甜,謝謝!對此,我真的非常感激。 – Chance 2010-02-04 22:05:41

+0

+1引人入勝:我發現這個技術有點令人害怕的是:如果這個字段是隻讀的:這段代碼在執行時不會導致運行時錯誤。 – BillW 2010-02-05 00:28:16

+0

如果這個字段是隻讀的,它什麼都不做?還是它確定了價值?這僅僅是.NET 3.5嗎? – 2010-02-05 20:57:25

1

你能創建一個靜態函數,它是公有的,並用它來設置你的私有靜態變量?

+0

我猜這是針對@Chance沒有源代碼的類型。 – Randolpho 2010-02-04 22:03:02

+0

擴展方法? – 2010-02-04 22:03:42

+0

是的,我無法擺脫源代碼,我很遺憾被阻止進入2.0 w/out擴展方法。雖然謝謝! – Chance 2010-02-04 22:04:55