【问题标题】:Generic class with restricted Type parameter具有受限类型参数的泛型类
【发布时间】:2009-07-17 13:24:04
【问题描述】:

我想创建一个泛型类,它接受一个类型参数并将该参数限制为数字类型或更一般地限制为可以应用增量运算符 ++ 的任何类型。

我知道我可以执行以下操作来限制结构,但显然有些结构不是数字类型并且不支持 ++ 运算符。我可以在 C# 中执行此操作吗

class Example<T> where T : struct
{
  //Implementation detail
}

【问题讨论】:

  • 这是一个经常被请求的功能。实现它需要更改语言和运行时。对于假设的未来版本,这是一种可能性,但不太可能是我们的首要任务。

标签: c# generics types


【解决方案1】:

很遗憾,这是不可能的(请参阅here。)您只能将类型限制为:

  • 实现特定接口或从特定类派生
  • 成为classstruct
  • 有一个无参数的构造函数

将类型限制为具有特定运算符是一个非常需要的功能,但我相信它也不会出现在 C# 4 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 2010-10-04
    • 2020-05-22
    相关资源
    最近更新 更多