繁体   English   中英

通用约束:强制类型具有静态函数和带参数的构造函数

[英]Generic constraint: Enforce type to have static function and constructor with parameters

我知道你可以写:

class GenericClass<T> where T : new()
{ 

}

强制执行T有一个空构造函数。

我的Qs是:

  1. 你能强制说T有一个具有特定参数类型的构造函数吗? 喜欢:

     class SingletonFactoryWithEmptyConstructor<T> where T : new(int) 
  2. 你能强制执行T有一个静态函数(比方说, void F() ),这样你就可以在泛型类中使用这个函数吗? 喜欢 :

     class GenericClass<T> where T : void F() { void G () { TF(); } } 

    我知道你可以指定T实现一个接口,但我不希望这样。 我想指定T具有静态函数。

不,在C#中没有这样的东西。

我之前曾建议“静态接口”可以合理地表达这一点。 它们对泛型类型约束有用(我怀疑,无论如何)但是你可以表达:

  • 具有任意参数的构造函数
  • 静态方法和属性
  • 运营商

在我看来,这些要点中的最后一点特别有趣,允许使用具有合适的加法和除法运算符的数字类型的通用“平均”方法。

我相信MS的一些人已经考虑过类似的东西,但我没有听到任何暗示他们正在积极研究的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM