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

¿Fue útil?

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
scroll top