戻り型を自分で定義したオブジェクトまたは1つのカスタム型に変換しようとすると、暗黙の演算子で問題が発生するのはなぜですか?
int
このような単純な型を変換して返そうとしても問題ありません
public static implicit operator int(MyClass a)
{
return 123;
}
ただし、タイプをオブジェクトまたはカスタムタイプに変換しようとすると、エラーが発生します。たとえば、次のようなものがある場合、「System.Objectへのユーザー定義の変換」というコンパイル時エラーが発生します。
public static implicit operator object(MyClass a)
{
return new {};
}
これがある場合、同じ種類のエラーが発生します。
public static implicit operator CustomTestObject(MyClass a)
{
return new CustomTestObject();
}
暗黙の演算子を使用するときに、それを独自のカスタム定義型に変換して返すにはどうすればよいですか?