Soy muy nuevo a los genéricos y yo estoy tratando de escribir una clase simple que será genérica, sino también permitir la clasificación de algún tipo en una variable miembro de cuerdas.genéricos e implementar IComparable
En el momento en que tienen una clase básica, pero cuando trato de poner en práctica el miembro de interfaz CompareTo() Me aparece un error en la parte superior me dice que no está implementada. Cuál es el problema aquí?
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);
}
}
}
No haría 'if (obj.GetType()! = GetType()) return -1;', porque entonces su comparación ya no es antisimétrica o reflexiva. – porges
Es cierto. Pero no sé qué se supone que debo hacer en ese caso. ¿Cuál sería tu sugerencia? –
En su segunda función CompareTo utiliza esta línea: CompareTo volver (obj como SortableGenericType); ¿Compara esta línea implícitamente el objeto actual que tenemos con el que pasó sin hacer referencia al elemento actual en la línea? –
CSharpened