Problema con conversión implícita y nula
-
18-09-2019 - |
Pregunta
Tengo esta función
public static implicit operator MyClass(string v) { return new MyClass(v); }
y escribir var.myclass = null ;. Esto requiere que el operador implícita y pasa nulo como cuerdas, que causa estragos en mi código (i utilizar la reflexión y no me gustaría añadir un caso especial). ¿Cómo puedo escribir miclase = null sin causar el operador implícito?
He intentado escribir
public static implicit operator MyClass(string v) { return v == null ? null : new MyClass(v); }
Pero eso provoca un stackoverflow
Solución
Creo que su problema es que ambos lados del operador ternario deben ser del mismo o de tipos compatibles.
Trate de escribir
if (v == null)
return null;
else
return new MyClass(v);
Editar : Sólo puedo reproducir su problema si hago MyClass
una estructura, en cuyo caso su pregunta es imposible; una estructura no puede ser nulo.
Por favor proporcionar más detalles.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow