C#中的一个未知功能也许只是为了我
本文关键字:功能 未知 也许 为了我 一个 | 更新日期: 2023-09-27 17:48:56
可能重复:
C#的隐藏特性?
它是什么?它有用吗?哪里
??
这是null合并运算符,允许您在对象为null时设置默认值。
http://msdn.microsoft.com/en-us/library/ms173224.aspx
它是这样工作的;
Object a = otherObject ?? "otherObject is null";
这意味着如果otherObject
不为空,它将被分配给"a"。如果它为空,右边的对象将被分配给"a"。
当我想设置默认值时,它对我很有用;
public class MyClass
{
private Object b;
public MyClass(Object a)
{
b = a ?? "Deafult Value";
}
}
官方文件也可以在这里找到;MSDN
object o = someObject ?? anotherObject;
是同一吗
object o;
if(someObject == null)
o = anotherObject;
else
o = someObject;
*??运算符被称为null合并运算符,用于为可为null的值类型以及引用类型定义默认值。如果左侧操作数不为null,则返回左侧操作数;否则返回右操作数。http://msdn.microsoft.com/en-us/library/ms173224.aspx
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
*
也许您可以使用它来简化一些重复的代码片段。
这被称为null合并运算符(http://msdn.microsoft.com/en-us/library/ms173224.aspx(。
如果左手边为空,您可以使用它来返回它的右手边;否则,它将返回左侧。
例如,您可以使用它来简化(在ASP.NET应用程序中(:
public string SessionStore
{
get
{
if( Session["MyData"] == null )
{
return "default value";
}
return (string)(Session["MyData"]);
}
set { Session["MyData"] = value; }
}
进入:
public string SessionStore
{
get { return (string)(Session["MyData"]) ?? "default value"; }
set { Session["MyData"] = value; }
}