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;