【发布时间】:2011-07-01 21:16:05
【问题描述】:
我想要一个实现某些静态函数的通用参数。作为其接口(静态函数)的一部分,对我来说,拥有这样的通用参数约束是合乎逻辑的,但我找不到如何做到这一点。任何帮助表示赞赏。
目前,我正在通过定义返回静态值的非静态属性来解决此类问题,作为 OOP 开发人员,我当然不喜欢这些属性。此属性是某些接口的一部分,并且泛型参数是从接口继承的约束。
【问题讨论】:
标签: c# asp.net-mvc-3 c#-4.0 c#-3.0 c#-2.0
我想要一个实现某些静态函数的通用参数。作为其接口(静态函数)的一部分,对我来说,拥有这样的通用参数约束是合乎逻辑的,但我找不到如何做到这一点。任何帮助表示赞赏。
目前,我正在通过定义返回静态值的非静态属性来解决此类问题,作为 OOP 开发人员,我当然不喜欢这些属性。此属性是某些接口的一部分,并且泛型参数是从接口继承的约束。
【问题讨论】:
标签: c# asp.net-mvc-3 c#-4.0 c#-3.0 c#-2.0
您不能 - 没有静态成员约束类型参数之类的东西,除非您计算需要无参数构造函数的 new() 约束。
请注意,静态成员不能成为正常 C# 意义上的接口的一部分 - 即使它们显然可以是该类型的公共 API 的一部分。
我之前曾在博客上写过 "static interfaces" 在 C# 的未来 版本中的可能性(只是作为一种功能请求),但它现在绝对不可用。
有时最好的替代方法是让 单独的 类型实现普通接口 - 如果您可以向我们提供有关您的上下文的更多信息,我们或许可以建议替代方法。
【讨论】:
目前,C# 中不可能有您需要的约束。我也很想拥有这个功能。 :)
【讨论】: