Problema com conversão implícita e nulos
-
18-09-2019 - |
Pergunta
Eu tenho essa função
public static implicit operator MyClass(string v) { return new MyClass(v); }
e escrever var.myclass = null ;. Isto exige que o operador implícito e passa nulo como corda, o que provoca estragos no meu código (eu uso a reflexão e não gostaria de adicionar um caso especial). Como posso escrever myclass = null sem causar o operador implícito?
Eu tentei escrever
public static implicit operator MyClass(string v) { return v == null ? null : new MyClass(v); }
Mas isso faz com que um stackoverflow
Solução
Eu acredito que o problema é que ambos os lados do operador ternário deve ser do mesmo ou compatível tipos.
Tente escrever
if (v == null)
return null;
else
return new MyClass(v);
Editar : Eu só pode reproduzir o problema se eu fizer MyClass
um struct, caso em que a sua pergunta é impossível; um struct não pode ser nulo.
Por favor, forneça mais detalhes.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow