我有一個擴展方法,看起來像這樣:爲什麼使用ConditionalAccessExpression會改變我的擴展方法的工作方式?
public static bool DoesNotExist(this object toCheck)
{
return toCheck == null;
}
一般我使用這樣的:
if(myObject.DoesNotExist())
{
}
我有一個包含這樣
if (myObject?.MyProperty == null)
條件訪問表達的表達
編譯器很滿意。如果我是表達式中使用我的擴展方法,像這樣:
if (myObject?.MyProperty.DoesNotExist())
然後我得到一個編譯錯誤
CS0266無法隱式轉換類型'布爾?到'布爾'。存在明確的轉換(您是否缺少演員?)
MyProperty的類型是來自我的域的某個對象,而不是bool。
爲什麼會發生這種情況,我可以預防嗎?
'if((myObject?.MyProperty).DoesNotExist())'似乎工作雖然 – haim770
@ haim770有趣。謝謝你,我可以使用它。 –