-1
我想为Object
中的所有decimal
字段设置默认值。方法做它看起来像这样:将类型转换为myType
private Type SetAllFieldsAsDefault(Type register)
{
var fields = register.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
foreach (var field in fields)
{
if (field.FieldType != typeof(double)) continue;
field.SetValue(field, 0);
}
return register;
}
我尝试后铸造myType
,但它不工作
myType = (MyType)SetAllFieldsAsDefault(myType.GetType());
我该怎么办呢?
你不给它实际的对象设定值到和你只返回一个'Type'。它不能投射到你拥有的实际物体上。 'SetValue'应该有实际的对象作为第一个参数。 –
我不知道这段代码期望做什么。您不能在类型上设置实例值。而'field.SetValue(field,0)'完全是错误的。请参阅[文档](https://msdn.microsoft.com/en-us/library/6z33zd7h(v = vs.110).aspx) – Amy