他のクラスを派生できる基本クラスを作成しています。
public class BaseClass<T> where T
{
public BaseClass()
{
TClassObject = new T("SomeText"); // Error here
}
public T TClassObject { get; set; }
}
'T': 変数型のインスタンスを作成するときに引数を提供できません。
私がここに欠けているもの。
MSDN から:
新しい制約は、ジェネリック クラス宣言内のすべての型引数に、パラメーターなしのパブリック コンストラクターが必要であることを指定します。
したがって、パラメータなしである必要があります。あなたは見たいかもしれませんActivator.CreateInstance
http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx
where T : new()制約は、パラメーターなしのコンストラクターがT必要であることを示しています。あなたのコードは、文字列パラメーターを受け取るコンストラクターを呼び出していますが、そのようなコンストラクターがあることは保証されていません。T
C# では、特定のコンストラクター シグネチャに制約を作成することはできません。この機能が必要な場合は、このスレッドの回答のようなものを使用することをお勧めします。