Ich versuche, diese Klasse zu validieren: min >= max
. Ich erkannte, dass ich mit Generika die Komparatoren nicht verwenden kann.Wie kann man diese Situation mit Generics validieren?
Dies ist meine generische Klasse.
public class Range<T>
{
public T MinValue { get; set; }
public T MaxValue { get; set; }
public Range() { }
public Range(T min, T max)
{
this.MinValue = min;
this.MaxValue = max;
}
public override bool Equals(object obj)
{
if (obj == null) return false;
var other = obj as Range<T>;
return this.MinValue.Equals(other.MinValue) &&
this.MaxValue.Equals(other.MaxValue);
}
public override string ToString()
{
return string.Format("{0},{1}", this.MinValue, this.MaxValue);
}
}
T-Datentyp nur Zahlen sein kann, ist es eine Möglichkeit, nur Zahlen zu akzeptieren und die <=
zu akzeptieren?
struct Einschränkung würde nicht geben Zugriff auf>, <, etc. Zusätzlich einige Dinge umsetzen 'IComparable' aber sind nicht 'struct' wie' string'. –
Ich weiß, ich würde nur hinzufügen, es würde nichts gewinnen, da Sie die Fähigkeit verlieren würden, es mit 'string' zu verwenden, es könnte wünschenswert sein, einen Bereich von" A "bis" Z "zum Beispiel zu haben. .. –