Я очень новичок в дженериках, и я пытаюсь написать простой класс, который будет общим, но также позволяет сортировать некоторое описание в переменной-члене строки.Generics and Implementing IComparable
На данный момент у меня есть базовый класс, но когда я пытаюсь реализовать элемент интерфейса CompareTo(), я получаю сообщение об ошибке, говорящее, что он не реализован. В чем проблема?
using System;
namespace GenericsPracticeConsole.Types
{
class SortableGenericType<T> : IComparable
{
private T t;
private string stringName;
public T name
{
get { return t; }
set { t = value; }
}
public int CompareTo(SortableGenericType<T> ourObject)
{
return stringName.CompareTo(ourObject.stringName);
}
}
}
Я бы не сделал 'if (obj.GetType()! = GetType()) return -1;', потому что тогда ваше сравнение уже не является антисимметричным или рефлексивным. – porges
Правда. Но я не знаю, что я должен делать в этом случае. Что бы вы сказали? –
В вашей второй функции CompareTo вы используете эту строку: return CompareTo (obj as SortableGenericType); Эта строка неявно сопоставляет текущий объект, который у нас есть, с переданным без фактического ссылки на текущий элемент в строке? –
CSharpened