Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中的一个未知功能可能只适合我_C# - Fatal编程技术网

C#中的一个未知功能可能只适合我

C#中的一个未知功能可能只适合我,c#,C#,可能重复: 这是什么?它有用吗?在哪里 ?? 它是这样工作的 Object a = otherObject ?? "otherObject is null"; 这意味着otherObject如果不为空,将被分配给“a”。如果为空,则右侧的对象将分配给“a” 当我想设置默认值时,它对我很有用 public class MyClass { private Object b; public MyClass(Object a) { b = a ?? "Dea

可能重复:

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

??
它是这样工作的

Object a = otherObject ?? "otherObject is null";
这意味着
otherObject
如果不为空,将被分配给“a”。如果为空,则右侧的对象将分配给“a”

当我想设置默认值时,它对我很有用

public class MyClass
{
    private Object b;
    public MyClass(Object a)
    {
        b = a ?? "Deafult Value";
    }
}

官方文件也可以在这里找到

这是空合并运算符,允许您在对象为空时设置默认值


*这个??运算符称为空合并运算符,用于为可为空的值类型以及引用类型定义默认值。如果左操作数不为空,则返回左操作数;否则返回正确的操作数。

*


也许您可以使用它来简化一些重复的代码段。

这称为空合并操作符()

如果左侧为空,可以使用它返回它的右侧;否则,它将返回左侧

例如,您可以使用它来简化此操作(在ASP.NET应用程序中):

为此:

public string SessionStore
{
    get { return (string)(Session["MyData"]) ?? "default value"; }
    set { Session["MyData"] = value; }
}
都一样

object o;
if(someObject == null)
  o = anotherObject;
else
  o = someObject;

嘿,兄弟,你能解释更多吗?如果其他对象不为空,它将被分配给a。如果为空,则右侧的对象将分配给a。现在清楚了吗,兄弟?是的,非常感谢。**穆查斯·格拉西亚斯**:):*不客气,德纳达!请将此问题编辑得更清楚一点。你是问“?”接线员还是这里的“?”接线员?
public string SessionStore
{
    get { return (string)(Session["MyData"]) ?? "default value"; }
    set { Session["MyData"] = value; }
}
object o = someObject ?? anotherObject;
object o;
if(someObject == null)
  o = anotherObject;
else
  o = someObject;