Мне интересно, можно ли локально создавать интерфейсы маркеров в C#, например, в цикле foreach.Интерфейс анонимного маркера в C#?
Учитывайте, что у нас есть игровые компоненты, которые должны иметь методы HandleInput и Update-methods. Методы определены в соответствующих интерфейсах, IUpdateable & IInputHandler соответственно. Мы могли бы, конечно, сделать обычный цикл Еогеаспа так:
foreach (var component in Components)
{
if (component.Enabled)
component.Update(gameTime);
if (component.Litsening)
component.HandleInput(gameTime, InputManager);
}
Однако, было бы очень здорово, если бы был способ указания, что тип iterationvariables носил временный интерфейс маркеров, который построен из как IUpdateable & IInputHandler:
foreach ((IInputHandler, IUpdateable) component in Components)
{
if (component.Enabled)
component.Update(gameTime);
if (component.Litsening)
component.HandleInput(gameTime, InputManager);
}
бы это было возможно, и было бы предпочтительнее? Лично я считаю его элегантным. // Спасибо, Филипп Щит
Какая польза/значение имеет второй случай? – Tigran
Какую проблему вы пытаетесь решить? – jgauffin