【发布时间】:2018-05-20 10:00:55
【问题描述】:
我想知道是否使用通用约束(何时)可以允许此代码?
什么是正确的模式?
public MyClass<T>
{
public void MyMethod(T a, T b)
{
//some code
var result = a<b;
//some code
}
}
我的问题是针对所有运营商的
+, -, !, ~, ++, --, *, /, %, &, |, ^, <<, >>, ==, !=, <, >, <=, >=
【问题讨论】:
-
您是在谈论提议的 C# 8.0 递归模式匹配还是什么?
-
我对 C# 和递归模式匹配一无所知,我使用的是 C# 7.2。但我没有在我的版本中指定 C# 版本,因为我并不关心这个。
-
@xanatos,我想问题是我们是否可以将
T转换为“定义了<运算符的类型”。 -
@TetyanaKorogoda 我只想在方法中指定 T 具有
-
@ChristopheDebove 在这个时间点(2018 年 5 月),您唯一能做的就是在类定义中添加约束
: IComparable<T>并使用CompareTo方法而不是<
标签: c# generics operator-overloading generic-constraints