Ant*_*ram 11
您不能限制运算符,但可以约束接口.因此,打算使用>=, <=, ==
,但你可以使用CompareTo, Equals
.
where T : IComparable<T>
Run Code Online (Sandbox Code Playgroud)
此接口为您提供了CompareTo
对关系排序(大于,小于等)有用的方法.基元和字符串已实现此功能,但您需要为自己的自定义类型实现此功能.你会像这样使用它
void SomeMethod<T>(T alpha, T beta) where T : IComparable<T>
{
if (alpha.CompareTo(beta) > 0)
{
// alpha is greater than beta, replaces alpha > beta
}
else if (alpha.CompareTo(beta) < 0)
{
// alpha is less than beta, replaces alpha < beta
}
else
{
// CompareTo returns 0, alpha equals beta
}
}
Run Code Online (Sandbox Code Playgroud)
Equals
默认情况下,您将获得虚拟方法object
.如果要使用除引用相等之外的其他内容,则希望在自己的自定义类型上覆盖此方法.(强烈建议同时覆盖GetHashCode
.)
归档时间: |
|
查看次数: |
4228 次 |
最近记录: |