csh*_*olk 5 c# language-design
众所周知,我们不能在当前版本的C#中编写这样的代码:
public class A {
public static void Method<T> () where T : new(string, string) {
var x = new T("foo", "bar");
}
}
Run Code Online (Sandbox Code Playgroud)
但我们可以使用new()约束来强制执行T具有公共参数的构造函数,然后我们就可以创建T使用new T()表达式的新实例.
有关各种解决方法的SO有很多答案,但没有解释为什么语言设计者没有实现这样的功能.从SO的问题数量来看,它似乎在阅读世界应用程序中很有用.
为什么在C#中没有实现此功能,是否有可能在下一版本的语言中添加它?