在C#中,??操作符是什么意思?
在C#中,??操作符是什么意思?
这个问题已经在这里有了答案:
可能是重复问题:
嗨,我在寻找一些关于C# MVC 2的培训,并找到了这个语法:
ViewData["something"] = something ?? true;
那么,\'??\'是什么意思?
admin 更改状态以发布 2023年5月22日
它返回第一个参数,除非它为 null,在这种情况下它返回第二个参数。
x ?? y
大致等价于这个(除了第一个参数只会被评估一次):
if (x == null) { result = y; } else { result = x; }
或者更简单地:
(x == null) ? y : x
它对于提供默认值很有用,当值可以为 null 时:
Color color = user.FavouriteColor ?? defaultColor;
COALESCE
当在 LINQ to SQL 查询中使用时,??
操作符可以被翻译成对 COALESCE 的调用。例如,这个 LINQ 查询:
var query = dataContext.Table1.Select(x => x.Col1 ?? "default");
可能会产生这个 SQL 查询:
SELECT COALESCE([t0].[col1],@p0) AS [value] FROM [dbo].[table1] AS [t0]