2010-02-04 37 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