現在、Activator.CreateInstance()を使用して、型に基づいてオブジェクトを作成するコードがたくさんあります。これを達成するためのより最適化された方法はありますか?
1 に答える
2
new
ジェネリックファクトリを介してオブジェクトのインスタンスを作成しているため、キーワードを使用できないと想定します。
リフレクションを介してオブジェクトをインスタンス化する方法に関しては、オプションが制限されています。とその派生物を除いActivator.CreateInstance
て、ジェネリック型定義を使用してオブジェクトをインスタンス化できる唯一の方法は、新しい制約を宣言することです。これにより、を呼び出すことができますnew T()
。インスタンス化するオブジェクトは、これが機能するためにパラメーターなしのコンストラクターを宣言する必要があります。
パフォーマンスが最優先される場合は、反射率や一般的なオブジェクトのインスタンス化のパターンを避け、可能な場合は新しいキーワードを使用して問題のオブジェクトのインスタンスを作成することをお勧めします。
于 2013-03-21T23:55:38.313 に答える