【发布时间】:2013-11-24 15:27:42
【问题描述】:
我想知道,类型化构造函数缺少泛型类类型约束的原因是什么?例如。
public class MyClass<T>
where T : new(int)
{
public T Create(int i)
{
return new T(i);
}
}
尽管这可能很容易(尽管 IMO 丑陋)绕过(通过 lambda-ctor),但我无法想象这种约束可能会导致任何实际麻烦或歧义的情况。
请注意,这是一个语言结构问题,而不是特定问题。
【问题讨论】:
-
@ken2k 关于为什么没有这样的限制没有实际答案。我不是在问是否有它们或如何克服它们的不足。我在问,为什么 C# 是这样设计的,没有。
-
下次你上车时,看看你身后。 Jon Skeet 将在那里附上一张附有答案的便条...
-
很多人需要看看this Eric Lippert's post
-
@Spook 在接受的答案下方的 cmets 中有解释。
-
@Spook “我在问,为什么 C# 是这样设计的,没有”-> 那么谁知道呢?答案将是纯粹的猜测。很可能该功能不够有用,无法实现。但这只是一个猜测。
标签: c#