Problem mit impliziter Umwandlung und null
-
18-09-2019 - |
Frage
Ich habe diese Funktion
public static implicit operator MyClass(string v) { return new MyClass(v); }
und schreiben var.myclass = null ;. Dies erfordert den impliziten Operator und übergibt null als Zeichenfolge, die Chaos in meinem Code verursacht (i verwenden Reflexion und würde kein Sonderfall hinzufügen möchten). Wie kann ich schreiben myclass = null, ohne den impliziten Operator verursacht?
Ich habe versucht, das Schreiben
public static implicit operator MyClass(string v) { return v == null ? null : new MyClass(v); }
Aber das führt zu einer Stackoverflow
Lösung
Ich glaube, dass Ihr Problem ist, dass beide Seiten des ternären Operators der gleichen oder kompatible Typen sein müssen.
Versuchen Schreiben
if (v == null)
return null;
else
return new MyClass(v);
Bearbeiten : Ich habe Ihr Problem nur reproduzieren kann, wenn ich MyClass
eine Struktur bilden, wobei in diesem Fall Ihre Frage ist unmöglich; eine Struktur nicht null sein.
Bitte mehr Details liefern.