我正在使用一个预构建的第三方类库(想想 .NET Framework...),它包含一个类 Foo
,其成员如下:
public sealed class Foo {
private object _state;
public Foo(object state) { _state = state; }
}
Foo
不包含public
_state
setter 。
在特定场景中,我想将Foo
对象的状态 设置为对象本身。
这将不编译:
Foo f;
f = new Foo(f); // Compilation error: Use of unassigned local variable 'f'
鉴于上述先决条件,是否有任何方法可以将 Foo
对象的状态设置为对象本身?
基本原理 Windows 8.1 中的 Timer
类不包含分配 Timer 状态的
对象与对象本身。我正在尝试将包含此 Timer(AsyncCallback)
构造函数Timer
构造函数的 .NET 代码移植到 Windows 8.1 类库,所以我关心的是如何将对象本身传递给它的状态成员?此问题进一步概述 here , 但我认为也提出上面的主要问题会更有效率。
最佳答案
解决方法:
var foo = new Foo(/*params*/);
var fieldInfo = foo.GetType().GetField("_state", BindingFlags.NonPublic | BindingFlags.Instance);
fieldInfo.SetValue(foo , foo);
关于c# - 我可以在构造函数调用中将对象的状态设置为对象本身吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19705660/