An Unknown feature in C# Maybe Just For Me
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Hidden Features of C#?
它是什么?有用吗?在哪里?
1 | ?? |
这是空合并运算符,允许您在对象为空时设置默认值。
http://msdn.microsoft.com/en-us/library/ms173224.aspx
它是这样工作的;
1 | Object a = otherObject ??"otherObject is null"; |
这意味着如果不为空,
当我想设置默认值时,它对我很有用;
1 2 3 4 5 6 7 8 | public class MyClass { private Object b; public MyClass(Object a) { b = a ??"Deafult Value"; } } |
官方文件也可以在这里找到;msdn
1 | object o = someObject ?? anotherObject; |
是一样的
1 2 3 4 5 | object o; if(someObject == null) o = anotherObject; else o = someObject; |
这称为空合并运算符(http://msdn.microsoft.com/en-us/library/ms173224.aspx)。
如果左侧为空,可以使用它返回右侧;否则,它将返回左侧。
例如,可以使用它来简化(在ASP.NET应用程序中):
1 2 3 4 5 6 7 8 9 10 11 12 13 | public string SessionStore { get { if( Session["MyData"] == null ) { return"default value"; } return (string)(Session["MyData"]); } set { Session["MyData"] = value; } } |
进入这个:
1 2 3 4 5 | public string SessionStore { get { return (string)(Session["MyData"]) ??"default value"; } set { Session["MyData"] = value; } } |
*??运算符称为空合并运算符,用于定义可为空值类型以及引用类型的默认值。如果不是空值,则返回左侧操作数;否则返回右侧操作数。http://msdn.microsoft.com/en-us/library/ms173224.aspx
1 2 3 4 | // 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); |
*
也许您可以使用它来简化一些重复的代码片段。