次のクラスがある場合:
class A
{
public A(int number)
{
}
}
それでは、なぜ私はこのような汎用クラスを持つことができないのですか?
class B<ParameterClass> where ParameterClass : A
{
public B()
{
ParameterClass a = new ParameterClass(1);
}
}
CS0304を取得し、コンパイラはnew()制限がないと言っていますが、Aで定義されたコンストラクタを呼び出したいだけで、ParameterClassは常にAになるため、コンパイラはA(int番号)を確認できます。コンストラクターは常に存在します。なぜこの制限があるのかわかりません。