私はこのようになります拡張メソッドを持っています。ConditionalAccessExpressionを使用すると、拡張機能の仕組みが変わるのはなぜですか?
public static bool DoesNotExist(this object toCheck)
{
return toCheck == null;
}
は、一般的に私はこのようにそれを使用します。
if(myObject.DoesNotExist())
{
}
私はこの
if (myObject?.MyProperty == null)
などの条件付きアクセス式を含む式を持っていますコンパイラが満足している
このように、私、私の拡張メソッドを使用するには、その式の場合:
if (myObject?.MyProperty.DoesNotExist())
その後、私は、コンパイラのエラーを取得する
CS0266は、暗黙的に型「ブールの?」に変換できませんブールに明示的な変換が存在する(キャストがありませんか?)
MyPropertyのタイプは、私のドメインのオブジェクトであり、ブールではありません。
なぜこのようなことが起こりますか?それを防止できますか?
'if((myObject?.MyProperty).DoesNotExist())'は動作するようですが、 – haim770
@ haim770が面白いです。ありがとう、私はそれを使用することができるかもしれません。 –