Question

In JavaScript we can OR two objects/properties like this:-

var myURL = window.URL || window.webkitURL;

also

function doKey(e) {
    var evt = e || window.event; // compliant with ie6      
    //Code
}

Can we OR C# class objects?

SpecificClass1 sc1 = new SpecificClass1();
SpecificClass2 sc2 = new SpecificClass2();
sc2 = null;

var temp = sc1 || sc2;

Edit:-

Not working for me using ??

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

        }
    }
}

Error:-

Operator '??' cannot be applied to operands of type 'MultipleCast.Program.SpecificClass1' and 'MultipleCast.Program.SpecificClass2'

Était-ce utile?

La solution

The null-coalescing operator (??) will do this for you:

var temp = sc1 ?? sc2;

If sc1 is null, temp will be sc2.

Autres conseils

If you overwrite the operator for that class, then you can do it and it will do exactly what you want.

s. here how to do it: http://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top