2016-12-06 8 views
-3

Я пытаюсь создать новый класс под названием Battlefield. Предполагается, что он должен быть получен из класса Environment и использовать все методы и переменные из этого класса среды, используя ключевое слово base. Кто-нибудь знает, как использовать ключевое слово base? Я искал везде в Google, но большинство из того, что я придумал, были не столь полезными.C# "base" ключевое слово и шаблон

Мой класс среда является абстрактным классом, и он имеет следующую переменную

 protected List<ENTITY> entities = new List<ENTITY>(); 

Его конструктор

 public ENVIRONMENT() 
     { 
      entities = new List<ENTITY>(); 
     } 

     public ENVIRONMENT(List<ENTITY> entities) 
     { 
      this.entities = entities; 
     } 

и следующие методы ...

 public void AddEntity(ENTITY e) 
     { 
     } 

     public List<ENTITY> Population 
     { 
      get { return entities; } 
     } 

     public void run() 
     { 
      // run method 
     } 

     public void step(int seed) 
     { 
      // step method 
     } 

}

+1

Вы говорите, что официальная документация была бесполезной в объяснении ключевого слова? –

+0

Да. Я не мог этого понять. – miiworld2

ответ

1

Вам нужно только ключевое слово base, если у вас есть метод в Battlefield, который переопределяет метод с тем же именем в Environment, и вы хотите получить значение из метода Environment вместо значения из переопределения Battlefield. Например, в Battlefield:

public class Battlefield : Environment { 
    public List<ENTITY> Population 
    { 
     get 
     { 
     var epop = base.Population; 
     return epop.Union(Casualties); 
     } 
    } 

    public List<ENTITY> Casualties 
    { 
     get { return this.casualties; } 
    } 
} 
+0

Не знаю. Кто-то там пытается опробовать вопросы и ответы, не указывая причины. – miiworld2

+0

@ Джон, я попробую этот подход. Спасибо. – miiworld2