2014-12-02 4 views
-2

Я новичок в C#, и из-за этого я нашел неприятную проблему, которая мешает мне делать домашнее задание. В чем разница между IComparable и IComparable<K>?Разница между IComparable и IComparable <K>

Один из моих друзей использовал что-то вроде этого Vector_d<T> where T:IComparable, но везде в исходных файлах он использовал T:IComparable<T>. Когда я спросил его, он не знал, чтобы ответить, поэтому мне нужно искать где-то еще.

+0

Какая была досадная проблема? –

+0

Я не знаю точной разницы между этими двумя. Так что мне нужен подсказку, чтобы знать, как его использовать. –

+0

Второй определяет тип сравнения –

ответ

4

Первый, IComparable, из старых дней .NET, где не было никаких дженериков. В основном это позволяет сравнить любой тип, реализующий его с любым другим типом, но, возможно, это вызовет исключение, если типы не сопоставимы. Общая версия, IComparable <>, позволит вам сравнивать два значения одного и того же типа (или производного типа), скорее всего, то, что вы хотите. Старые типы, такие как Int32, используются для реализации только IComparable, но теперь они реализуют оба, но IComparable конфиденциально, чтобы не вызываться вместо общей версии.

Смежные вопросы