私はの利点が何であるか疑問に思って、私はこの方法代わりに、メソッドのパラメータの一般的な方法を使用して
public static void Initialize<T>() where T : Game;
を持っているフレームワークを使用していますが、サンプルコードで、あなたはこの
TargetDevice.Initialize<MyGame>();
のようなあなたのゲームをintialize初期
public static void Initialize<T>() where T : Game;
TargetDevice.Initialize<MyGame>();
代わりの
のスタイルを使用してメソッドを初期化する一般的なスタイルには、私が読むことができる名前がありますか?なぜ私は別のスタイルの代わりに1つのスタイルを選択すべきですか?
ありがとうございました。あなたは違いを意味する場合
最初のメソッドに 'Game'を渡す必要はないので、2番目のメソッドに必要なことは奇妙に思えます。 'Type'で十分でしょうか? –
両方のメソッドでMyGameインスタンスがTargetDeviceによって初期化されていることは明らかです。ジェネリックメソッドを使用する利点の1つは、ユーザーがMyGameの実際のインスタンスへの参照を持たないことです。実際のインスタンスを隠すためのジェネリックプログラミングのこのアイデアの背後にあるアイデアですか? – Emil
*インスタンス付き/なし*はジェネリックスとは無関係です。インスタンスの有無にかかわらずジェネリックバージョンを持つことができ、インスタンスの有無にかかわらず非ジェネリックバージョンを持つことができます。それで、 'Type'とジェネリック' T'の間の違いを議論しました。 –