【问题标题】:How can I constrain generic parameter to have a certain static function?如何约束泛型参数以具有某个静态函数?
【发布时间】:2011-07-01 21:16:05
【问题描述】:

我想要一个实现某些静态函数的通用参数。作为其接口(静态函数)的一部分,对我来说,拥有这样的通用参数约束是合乎逻辑的,但我找不到如何做到这一点。任何帮助表示赞赏。

目前,我正在通过定义返回静态值的非静态属性来解决此类问题,作为 OOP 开发人员,我当然不喜欢这些属性。此属性是某些接口的一部分,并且泛型参数是从接口继承的约束。

【问题讨论】:

    标签: c# asp.net-mvc-3 c#-4.0 c#-3.0 c#-2.0


    【解决方案1】:

    您不能 - 没有静态成员约束类型参数之类的东西,除非您计算需要无参数构造函数的 new() 约束。

    请注意,静态成员不能成为正常 C# 意义上的接口的一部分 - 即使它们显然可以是该类型的公共 API 的一部分。

    我之前曾在博客上写过 "static interfaces" 在 C# 的未来 版本中的可能性(只是作为一种功能请求),但它现在绝对不可用。

    有时最好的替代方法是让 单独的 类型实现普通接口 - 如果您可以向我们提供有关您的上下文的更多信息,我们或许可以建议替代方法。

    【讨论】:

      【解决方案2】:

      目前,C# 中不可能有您需要的约束。我也很想拥有这个功能。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        • 2020-09-16
        相关资源
        最近更新 更多