なぜこれが不可能なのですか?コンストラクターパラメーターを使用して「DerivedClass」をインスタンス化すると、次のコンパイラエラーが発生します。
'GenericParameterizedConstructor.DerivedClass'には、1つの引数を取るコンストラクターが含まれていません
しかし、非常によく似たメソッドを呼び出すことは機能します。
なんで?
class Program
{
static void Main(string[] args)
{
// This one produces a compile error
// DerivedClass cls = new DerivedClass("Some value");
// This one works;
DerivedClass cls2 = new DerivedClass();
cls2.SomeMethod("Some value");
}
}
public class BaseClass<T>
{
internal T Value;
public BaseClass()
{
}
public BaseClass(T value)
{
this.Value = value;
}
public void SomeMethod(T value)
{
this.Value = value;
}
}
public class DerivedClass : BaseClass<String>
{
}