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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top