Вложенность VS наследование - не догоняю - C#
Формулировка задачи:
public class Game_class { ... public Player_class player; public int Round{get;set;}
public class Player_class { ... Game_class game111 = new Game_class(); //так по ходу тупо public int Method1() { return game111.Round; } }
... Game_class game1 = new Game_class(); int var1 = game1.player.Method1()
Решение задачи: «Вложенность VS наследование - не догоняю»
textual
Листинг программы
class Program { static void Main(string[] args) { Game g = new Game(); Player player1 = g.AddPlayer(new Player(g)); Player player2 = g.AddPlayer(new Player(g)); Player player3 = g.AddPlayer(new Player(g)); Console.WriteLine(player2.GetID()); Console.ReadKey(); g.ResetGame(); } } public class Player { private Game _game; public Player(Game game) { _game = game; } public void Die() { } public void ResetGame() { _game.ResetGame(); } public int GetID() { return _game.GetID(this); } } public class Game { public Game() { } public Player AddPlayer(Player player) { _players.Add(player); return player; } private List<Player> _players = new List<Player>(); private void KillAllPlayers() { for (int i = 0; i < _players.Count; i++) { _players[i].Die(); _players.Remove(_players[i--]); } } public void ResetGame() { KillAllPlayers(); } public int GetID(Player player) { return _players.IndexOf(player); } }