-1
Я хочу установить значения по умолчанию для всех полей decimal
в Object
. Метод, который делает это выглядит следующим образом:Преобразование типа в 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