Not*_*bad 4 c# reflection system.reflection
我一直在这里阅读stackoverflow如何使用反射写入类var成员.我使用类似的东西:
typeof(MyClass).GetField("myvar", BindingFlags.Public | BindingFlags.Instance).SetValue(instancie, 10);
Run Code Online (Sandbox Code Playgroud)
这适用于类,但如果我在读取myvar时对Struct而不是类执行相同操作,我总是得到0(int的默认构造值).这是我使用的代码:
struct MyStruct
{
public int myvar;
}
MyStruct instance=new MyStruct();
typeof(MyStruct).GetField("myvar", BindingFlags.Public | BindingFlags. BindingFlags.Instance).SetValue(instance, 10);
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这可能是hapenning?
当您传入"实例"时,这是一个框 - 它是数据的包装克隆,您稍后将丢弃.
要在这里使用反射:
object obj = instance; // box
blah.SetValue(obj, value); // mutate inside box
instance = (YourType)obj; // unbox
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |