Search code examples
c#castingoperator-overloadingimplicit-conversionexplicit-conversion

Is it possible to overload the “as” or “is” operators


Is this allowed? If not, can this be accomplished inherently by overloading the implicit/explicit conversion operators?


Solution

  • Is overloading the "is" and "as" operators allowed?

    No.

    If not, can this be accomplished inherently by overloading the implicit/explicit conversion operators?

    No. The "as" and "is" operators tell you what a thing really is. They pay no attention to user-defined conversions.

    See

    http://blogs.msdn.com/b/ericlippert/archive/2009/10/08/what-s-the-difference-between-as-and-cast-operators.aspx

    http://blogs.msdn.com/b/ericlippert/archive/2010/09/16/is-is-as-or-is-as-is.aspx

    for some more thoughts on the "as" and "is" operators.