我想驗證此類:min >= max
。我意識到使用泛型我不能使用比較器。如何使用泛型指定驗證此情況?
這是我的泛型類。
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);
}
}
牛逼的數據類型只能是數字,是有辦法接受只是數字並接受<=
?
結構約束不會給訪問>,<等,另外一些事情落實'IComparable'但不是'struct',比如'string'。 –
2012-03-28 20:58:43
我知道,我只是說添加它不會獲得任何東西,因爲您將失去使用'string'的能力,例如,可能需要從「A」到「Z」的範圍。 .. –
2012-03-28 21:01:06