Как проверить, перегружает ли тип/поддерживает ли он определенный оператор?

Как проверить, реализует ли определенный тип определенный оператор?

struct CustomOperatorsClass
{
    public int Value { get; private set; }


    public CustomOperatorsClass( int value )
        : this()
    {
        Value = value;
    }

    static public CustomOperatorsClass operator +(
        CustomOperatorsClass a, CustomOperatorsClass b )
    {
        return new CustomOperatorsClass( a.Value + b.Value );
    }
}

Следующие две проверки должны вернуть true:

typeof( CustomOperatorsClass ).HasOperator( Operator.Addition )
typeof( int ).HasOperator( Operator.Addition )
9
задан Steven Jeuris 15 December 2011 в 05:09
поделиться