[英]What is wrong with the below Null-Conditional Operator?
出什么問題了
public int Add(int? a, int? b)
{
return (a?.0 + b?.0);
}
編譯錯誤: 無法隱式轉換類型'int?' 'bool'
只是嘗試以C#6.0的方式獲得添加兩個可空整數的味道。
我也知道其他方式(比如hasvalue等),但我正在試驗這個新的運算符。
好吧,首先x?.0
並不意味着什么時候x
是一個int?
。 0
不是int?
的屬性或方法int?
。
好像你試圖使用空合並運算符??
而不是空條件操作?.
。 如果是這種情況,您的方法應如下所示:
public int Add(int? a, int? b)
{
return a ?? 0 + b ?? 0;
}
如果不是這樣,你的意思是?.
那么你可以用int
的擴展方法測試這個運算符,只返回它的值:
public static int Identity(this int value)
{
return value;
}
並按原樣嘗試使用它(但使用int?
):
public int? Add(int? a, int? b)
{
return a?.Identity() + b?.Identity();
}
但是,如果你只想結合這些int?
參數在一起你不需要任何新東西。 這只是工作:
public int? Add(int? a, int? b)
{
return (a + b);
}
當兩個參數都不為null
,兩個選項都將返回結果,否則返回null
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.