Как распечатать или получить доступ к значениям из этого списка имен? - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь создать простую консольную карточную игру на c #.Мне трудно понять, как получить доступ к именам моих игроков после того, как они были созданы.

Я пытаюсь создать массив объектов, в котором каждый игрок хранит свой индекс.По мере развития игры я добавляю дополнительные свойства в класс игрока (например, оставшиеся карты).

Я надеюсь, что смогу отобразить имя игрока, его идентификационный номер и т. Д., Но не знаю, как это сделать.выведите это значение.Я пробовал Console.WriteLine(playerList[i]), но это просто печатает пространство имен и класс.Я также не могу сделать что-то вроде Console.writeLine(playerList[i].name), но это тоже не сработает.

Любая помощь или обратная связь - это здорово!Спасибо!

class Player
{
    public int id;
    public string name;
}

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hi, enter how many players are playing");
        int numOfPlayer = int.Parse(Console.ReadLine());
        Player[] playerList = CreatePlayers(numOfPlayer);

        //What I'm trying to do! >>
        //Console.WriteLine(playerList[0].name + "'s turn")
    }

    static Player[] CreatePlayers(int amountOfPlayers)
    {
        Player[] playerList = new object[amountOfPlayers];

        for (int i = 0; i < amountOfPlayers; i++)
        {
            Console.WriteLine("Enter a name for player " + (i + 1));
            string playerName = Console.ReadLine();
            Player player = new Player();
            player.id = i;
            player.name = playerName;
            playerList[i] = player;
        }
        return playerList;
    }
}

РЕДАКТИРОВАТЬ: я изменил массив объектов в массив игрока, и я обновил его в коде выше.Кажется, теперь я могу получить доступ к имени, написав Console.Writeline (playerList [0] .name.ToString ()).Это достойный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019
 class Player
{
    public int id {get;set;}
    public string name{get;set;}
}


class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hi, enter how many players are playing");
        int numOfPlayer = int.Parse(Console.ReadLine());
        List<Player> playerList = CreatePlayers(numOfPlayer);

        //What I'm trying to do! >>
        Console.WriteLine(playerList.ElementAt(0).name + "'s turn");
        Console.ReadLine();

    }

   static List<Player> CreatePlayers(int amountOfPlayers)
    {

        List<Player> playerList = new List<Player>();

        for (int i = 0; i < amountOfPlayers; i++)
        {
            Console.WriteLine("Enter a name for player " + (i + 1));
            string playerName = Console.ReadLine();
            Player player = new Player();
            player.id = i;
            player.name = playerName;
            playerList.Add(player);
        }
        return playerList;
    }
}

Лучше использовать коллекции для linq или любые другие преимущества общих коллекций.

0 голосов
/ 10 февраля 2019

Заменить object на Player.
Преобразование класса в object не сможет ссылаться на членов исходного класса.

class Player
{
    public int id;
    public string name;
}


class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hi, enter how many players are playing");
        int numOfPlayer = int.Parse(Console.ReadLine());
        Player[] playerList = CreatePlayers(numOfPlayer);

        //What I'm trying to do! >>
        Console.WriteLine(playerList[0].name + "'s turn");

        Console.ReadKey();
    }

    static Player[] CreatePlayers(int amountOfPlayers)
    {

        Player[] playerList = new Player[amountOfPlayers];

        for (int i = 0; i < amountOfPlayers; i++)
        {
            Console.WriteLine("Enter a name for player " + (i + 1));
            string playerName = Console.ReadLine();
            Player player = new Player();
            player.id = i;
            player.name = playerName;
            playerList[i] = player;
        }
        return playerList;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...