Looking for c# Keywords? Try Ask4Keywords

C# Language Проверка равенства общих значений.


пример

Если логика родового класса или метода требует проверки равенства значений, имеющих общий тип, используйте свойство EqualityComparer<TType>.Default :

public void Foo<TBar>(TBar arg1, TBar arg2)
{
    var comparer = EqualityComparer<TBar>.Default;
    if (comparer.Equals(arg1,arg2)
    {
        ...
    }
}

Этот подход лучше, чем просто вызов метода Object.Equals() , поскольку реализация TBar умолчанию проверяет, реализует ли тип IEquatale<TBar> интерфейс IEquatale<TBar> и если да, вызывает IEquatable<TBar>.Equals(TBar other) . Это позволяет избежать боксирования / распаковки типов значений.