本质上,我们得到的是:
public class A {
...
public A() { ... }
...
}
public class B : A {
...
public B() : base()
{ throw new Exception(); }
...
}
但是之后:
public class Test<T>
where T : A, new()
{
public void doStuff() { B b = new B(); }
}
并且没有抛出异常。这真的很混乱!我错过了什么吗?