例如,我有一个(non-static
)类Foo<T>
我想为bar()
添加方法Foo
,但此方法仅适用于Foo<int>
。
因为我们不能超载类型约束,
我是否必须在单独的static
班bar(this Foo<int> myFoo)
?
答案 0 :(得分:3)
基本上,是的。 C#(以及一般的CLR)不支持C ++中已知的模板特化。
当您的类实现根本不关心实际类型时,可以使用类型参数。
作为替代方案,添加运行时检查以确保仅在typeof(T) == typeof(int)
上调用该方法。