在JavaScript中,我们可以像这样OR
两个对象/属性:
var myURL = window.URL || window.webkitURL;
也
function doKey(e) {
var evt = e || window.event; // compliant with ie6
//Code
}
我们可以OR
C# 类对象吗?
SpecificClass1 sc1 = new SpecificClass1();
SpecificClass2 sc2 = new SpecificClass2();
sc2 = null;
var temp = sc1 || sc2;
编辑:-
使用??
对我不起作用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MultipleCast
{
class Program
{
public class BaseClass {
}
public class SpecificClass1 : BaseClass
{
public string SpecificMethod1()
{
return "SpecificMethod1";
}
}
public class SpecificClass2 : BaseClass
{
public string SpecificMethod2()
{
return "SpecificMethod2";
}
}
public class SpecificClass3 : BaseClass
{
public string SpecificMethod3()
{
return "SpecificMethod3";
}
}
static void Main(string[] args)
{
SpecificClass1 sc1 = new SpecificClass1();
SpecificClass2 sc2 = new SpecificClass2();
sc1 = null;
var temp = sc1 ?? sc2;
Console.WriteLine(temp);
Console.Read();
}
}
}
错误:-
Operator '??' cannot be applied to operands of type 'MultipleCast.Program.SpecificClass1' and 'MultipleCast.Program.SpecificClass2'
空合并运算符 ( ??
) 将为您执行此操作:
var temp = sc1 ?? sc2;
如果sc1
null
,temp
将被sc2
。
如果您覆盖该类的运算符,则可以执行此操作它会完全按照你想要的去做。
s. 这里是怎么做:http://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx