Не удается получить экземпляр с помощью интерфейса - PullRequest
1 голос
/ 27 января 2012

Цель:
Получить весь экземпляр List <> из интерфейса GameFactory

Проблема:
Я получаю сообщение об ошибке «Интерфейсы не могут содержать поля».

Как мне поступить в orde, чтобы получить весь экземпляр из интерфейса GameFactory Любая хорошая идея?

// Fullmetalboy

public interface GameFactory<T>
{



}

public class NiceGameFactory : GameFactory<Player>
{

    public List<Obstacle> _my_G_Obstacle;
    public List<Action> _my_G_Action = new List<Action>();
    public Player _myPlayer;
    public void RetrieveObstacle()
    {



    }

    public NiceGameFactory()
    {

        _my_G_Obstacle = new List<Obstacle>();
        _my_G_Obstacle.Add(new Wizard());
        _my_G_Obstacle.Add(new Wall());
        _my_G_Obstacle.Add(new Elephant());
        _my_G_Obstacle.Add(new DPexam());

        _my_G_Action.Add(new BowAndShakeHandsAction());
        _my_G_Action.Add(new RunAndHideAction());
        _my_G_Action.Add(new BargainAndBuyAction());
        _my_G_Action.Add(new ChainsawAction());
        _my_G_Action.Add(new ClimbAction());
        _my_G_Action.Add(new CastAspellAction());
        _my_G_Action.Add(new SurrenderAction());

        _myPlayer = new OrdinaryPlayer();
    }


}

public class NastyGameFactory
{

    public List<Obstacle> _my_G_Obstacle;
    public List<Action> _my_G_Action;
    public Player _myPlayer;


    public NastyGameFactory()
    {
        _my_G_Obstacle.Add(new Dragon());
        _my_G_Obstacle.Add(new Bomb());
        _my_G_Obstacle.Add(new Samuray());
        _my_G_Obstacle.Add(new SumoWrestler());
        _my_G_Obstacle.Add(new Gangster());

        _my_G_Action.Add(new BowAndShakeHandsAction());
        _my_G_Action.Add(new RunAndHideAction());
        _my_G_Action.Add(new SwordAction());
        _my_G_Action.Add(new RifleAction());
        _my_G_Action.Add(new OfferFoodAction());
        _my_G_Action.Add(new ChainsawAction());
        _my_G_Action.Add(new CastAspellAction());
        _my_G_Action.Add(new BargainAndBuyAction());
        _my_G_Action.Add(new SurrenderAction());

        _myPlayer = new HeroPlayer();
    }


}

1 Ответ

1 голос
/ 27 января 2012

Вы можете определить списки как доступные через свойства интерфейса.

public interface GameFactory <T>
{

  public List<Obstacle> _my_G_Obstacle { get; set; }
  public List<Action> _my_G_Action { get; set; }

}

(В любом случае, это лучше, чем иметь открытые поля.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...