Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Is operator working simulation

3.40/5 (2 votes)
10 Jul 2011CPOL 16.8K  
A simulation of the IS operator working in C#.

This tip shows the simulation of the IS operator working in C#. It isn't an exact replica but instead if IS operator wasn't supported, how else we could produce it.


C#
bool IsOperatorCheck(object arg1, object arg2)
{
    bool result;
    if (arg1.GetType().IsValueType && arg2.GetType().IsValueType)
        result = (arg1.GetType() == arg2.GetType());
    else
        result = (arg1.GetType().Equals(arg2.GetType()));
    return result;
}

My guru Jon Skeet says here http://blogs.msdn.com/b/csharpfaq/archive/2004/03/29/when-should-i-use-and-when-should-i-use-equals.aspx[^] when to use == and Equals.


Hence in the above code, I have used == for valuetypes and if either of them isn't a valuetype, I am using Equals.


I have tested with valuetypes as well as custom reference type inputs.


P.S: I hope it helps in some way, and I am open for suggestions/learning. Thanks.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)