Может ли IComparer<type> принимать обобщенный тип type?

204
26 октября 2017, 06:50

Ребята мы должны использовать IComparer с типом точным? (не обобщенным) Или можем использовать и обобщенный?

class Trees<type> : IComparer<type> 
{
 public int Compare(type X, type Y)
    {
        if (X.CompareTo(Y) != 0)   // подчеркивает CompareTo
        {
            return X.CompareTo(Y); // подчеркивает CompareTo
        }
        return 0;
    }
}
Answer 1

Можно, но раз ваш код предъявляет какие-то требования к type (например, наличие у него метода CompareTo(type) из интерфейса IComparable<type>, то эти требования вы должны явно выразить в коде:

class Trees<type> : IComparer<type> where type: IComparable<type>
{
    public int Compare(type X, type Y)
    {
        if (X.CompareTo(Y) != 0)   // больше не подчеркивает CompareTo
        {
            return X.CompareTo(Y); // больше не подчеркивает CompareTo
        }
        return 0;
    }
}
READ ALSO
Невидимые входные параметры метода

Невидимые входные параметры метода

Есть методВ этом методе должны кое-какие данные из основной программы, где этот метод и вызывается

355
Использование F# функций из C#

Использование F# функций из C#

В проекте на C# понадобилось использовать F# функцию (FSharpFunc)Но при попытке это сделать получаю ошибку компиляции

378
Столкновение коллайдеров в unity3d?

Столкновение коллайдеров в unity3d?

Приветствую! Подскажите, как сделать чтобы при столкновении двух объектов, жизнь отнималась у игрока только один разНигде не могу найти этого...

868