2014-02-24 69 views
0

在JavaScript中我們可以OR兩個對象/屬性是這樣的: -如何在C#中短路或分配?

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(); 

     } 
    } 
} 

錯誤: -

​​

+0

編譯器不能推斷出你想要'temp'變量的類型(因爲'sc1'和'sc2'是不同類型的)。你必須聲明你的'temp'變量爲'BaseClass temp = sc1 ?? SC2;'。 – khellang

回答

-2

如果覆蓋該類的操作符,那麼您可以執行它 ,它將按照您的要求進行操作。

s。這裏怎麼做: http://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx

+0

這是爲什麼被拒絕? – mindfxxxedCoder

+0

啊,好的,它是不同的類型......那麼我的建議只有在它們有一個公共基類並且運算符重載在那裏時纔會起作用......如果這只是簡單的NULL檢查,那麼問題就不會很好地形成。 – mindfxxxedCoder

+0

問題形成得不好嗎?他問C#中有沒有什麼行爲(或多或少)與JavaScript的OR運算符相同,而不是簡單的'null'檢查,或者是否可以實現某些功能以使其工作。 – khellang