C#中的一个未知功能也许只是为了我

本文关键字:功能 未知 也许 为了我 一个 | 更新日期: 2023-09-27 17:48:56

可能重复:
C#的隐藏特性?

它是什么?它有用吗?哪里

??

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; }
}