泛型函数中的一些特定类型

时间:2012-08-12 18:53:45

标签: c# generics

我想制作一个函数,我不想用不同的类型写多次。 我可以使用'where'和“告诉它”我想要一个我写的特定类型吗? 顺便说一句,我需要一个处理整数的函数和另一个处理浮点数的函数。

2 个答案:

答案 0 :(得分:1)

不,你不能。您可以对类型参数应用特定约束,例如:它必须是一个不可为空的值类型,或者它必须是一个类,或者它必须实现一个接口或其他......但是你不能指定一组类型并说它必须是其中之一。

即使你可以这样做,我怀疑它不会做你想要的 - 因为我希望你能对这些类型进行算术运算。

两个选项:

  • 如果您使用的是C#4,则可以使用动态类型。它不会给你编译时的安全性,但是如果你小心的话它会起作用。
  • 您可以在generic operators
  • 中使用Marc Gravell的MiscUtil

答案 1 :(得分:0)

您不能将该函数静态限制为仅采用浮点数或整数。为此,您必须在函数内手动检查参数类型。