C# のかなり基本的な質問、
class Data<T>
{
T obj;
public Data()
{
// Allocate to obj from T here
// Some Activator.CreateInstance() method ?
obj = ???
}
}
どうすればいいですか?
C# のかなり基本的な質問、
class Data<T>
{
T obj;
public Data()
{
// Allocate to obj from T here
// Some Activator.CreateInstance() method ?
obj = ???
}
}
どうすればいいですか?
T の独自のインスタンスを作成する場合は、制約を定義する必要がありますnew()
class Data<T> where T: new()
{
T obj;
public Data()
{
obj = new T();
}
}
obj を渡したい場合は、コンストラクターでそれを許可する必要があります
class Data<T>
{
T obj;
public Data(T val)
{
obj = val;
}
}
YOU は、ジェネリック クラス定義でnew
制約を使用して、T に呼び出し可能な既定のコンストラクターがあることを確認できます。制約を使用すると、ジェネリック パラメーター T が従わなければならない特定の動作 (機能) についてコンパイラーに通知できます。
class Data<T> where T : new()
{
T obj;
public Data()
{
obj = new T();
}
}