-1
Ich möchte Standardwerte für alle decimal
Felder in Object
festlegen. Verfahren, das es funktioniert wie folgt aussieht:Konvertieren von Typ zu 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;
}
Nachdem ich versuche Gießen zu myType
, aber es funktioniert nicht
myType = (MyType)SetAllFieldsAsDefault(myType.GetType());
Wie kann ich es tun?
Sie sind nicht das eigentliche Objekt gibt Werte in zu setzen und Sie sind nur einen 'Baumuster zur Rückkehr. Es kann nicht in das tatsächliche Objekt umgewandelt werden, das Sie haben. 'SetValue' sollte das tatsächliche Objekt als erstes Argument haben. –
Ich weiß nicht, was dieser Code erwartet. Sie können keine Instanzwerte für einen Typ festlegen. Und 'field.SetValue (field, 0)' ist einfach falsch. Siehe [die Dokumentation] (https://msdn.microsoft.com/en-us/library/6z33zd7h (v = vs.110) .aspx) – Amy