Ich bin es leid, x > min && x < max
zu schreiben, also möchte ich eine einfache Funktion schreiben, bin mir aber nicht sicher, ob ich es richtig mache... eigentlich nicht, weil ich einen Fehler bekomme:
bool inBetween(T x, T min, T max) where T:IComparable
{
return (x > min && x < max);
}
Fehler:
Operator '>' kann nicht auf Operanden vom Typ 'T' und 'T' angewendet werden
Operator '<' kann nicht auf Operanden vom Typ 'T' und 'T' angewendet werden
Vielleicht habe ich ein falsches Verständnis des where
Teils bei der Funktionserklärung
Hinweis: Für diejenigen, die mir sagen möchten, dass ich mehr Code schreiben werde als zuvor... denkt an die Lesbarkeit =) jede Hilfe wird geschätzt
EDIT
gelöscht, weil es gelöst wurde =)
NOCH EIN BEARBEITEN
also nach einigem Kopfzerbrechen bin ich mit diesem (ähhh) Ding herausgekommen, folgend @Jay Idee von extremer Lesbarkeit:
public static class test
{
public static comparision Between(this T a, T b) where T : IComparable
{
var ttt = new comparision();
ttt.init(a);
ttt.result = a.CompareTo(b) > 0;
return ttt;
}
public static bool And(this comparision state, T c) where T : IComparable
{
return state.a.CompareTo(c) < 0 && state.result;
}
public class comparision
{
public IComparable a;
public bool result;
public void init(T ia) where T : IComparable
{
a = ia;
}
}
}
jetzt können Sie alles mit extremer Lesbarkeit vergleichen =)
Was denkst du.. Ich bin kein Performance-Guru, also sind alle Verbesserungsvorschläge willkommen