Problemi con conversione implicita e nullo
-
18-09-2019 - |
Domanda
Ho questa funzione
public static implicit operator MyClass(string v) { return new MyClass(v); }
e scrivere var.myclass = null ;. Ciò richiede l'operatore implicita e passa NULL come stringa, che provoca il caos nel mio codice (io uso di riflessione e non vorrei aggiungere un caso speciale). Come posso scrivere myclass = null senza causare l'operatore implicita?
Ho provato a scrivere
public static implicit operator MyClass(string v) { return v == null ? null : new MyClass(v); }
Ma che causa uno StackOverflow
Soluzione
Credo che il problema è che entrambi i lati del l'operatore ternario devono essere dello stesso o di tipi compatibili.
Provare a scrivere
if (v == null)
return null;
else
return new MyClass(v);
Modifica : posso riprodursi solo il problema se faccio MyClass
una struct, nel qual caso la tua domanda è impossibile; una struct non può essere nullo.
Si prega di fornire ulteriori dettagli.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow