たとえばforeachループで、C#でマーカーインターフェイスをローカルに作成できるかどうか疑問に思っています。
HandleInputメソッドとUpdateメソッドを呼び出す必要のあるゲームコンポーネントがあるとします。メソッドは、対応するインターフェイスIUpdateableとIInputHandlerでそれぞれ定義されています。もちろん、次のような通常のforeachループを実行することもできます。
foreach (var component in Components)
{
if (component.Enabled)
component.Update(gameTime);
if (component.Litsening)
component.HandleInput(gameTime, InputManager);
}
ただし、反復変数のタイプがIUpdateableとIInputHandlerの両方で構成される一時的なマーカーインターフェイスであることを指定する方法があれば、非常に便利です。
foreach ((IInputHandler, IUpdateable) component in Components)
{
if (component.Enabled)
component.Update(gameTime);
if (component.Litsening)
component.HandleInput(gameTime, InputManager);
}
これは可能でしょうか、そしてそれは望ましいでしょうか?個人的にはエレガントだと思います。//ありがとう、フィリップシールド