У меня есть эта функция
public static implicit operator MyClass(string v) { return new MyClass(v); }
и запишите var.myclass = пустой указатель;. это называет неявный оператор и передает пустой указатель как строку, которая вызывает опустошение в моем коде (я использую отражение и не хотел бы добавлять особый случай). Как я могу записать myclass = пустой указатель, не вызывая неявный оператор?
Я пытался писать
public static implicit operator MyClass(string v) { return v == null ? null : new MyClass(v); }
Но это вызывает stackoverflow
Я считаю, что ваша проблема заключается в том, что обе стороны тернарного оператора должны быть одного и того же или совместимого типа.
Попробуйте написать
if (v == null)
return null;
else
return new MyClass(v);
EDIT : Я могу воспроизвести вашу проблему только в том случае, если я сделаю MyClass
структурой, в этом случае ваш вопрос невозможен; структура не может быть нулевой.
Пожалуйста, предоставьте более подробную информацию.