Oto odpowiednia część z mojego kodu:

        //Allow user to add details of a player
        Console.WriteLine("Please enter a player name");
        string player = Console.ReadLine();

        //Create new player object
        PlayersClass userPlayer = new PlayersClass();

I to moja graczeCass:

    class PlayersClass
    {
        public int id;
        public string name, city, street, teamName;
        public DateTime birthDate;
        public float height;
    }

Chcę, aby obiekt gracza zostanie nazwany na podstawie wejścia użytkownika - gracza (ciągiem). Zamiast userplayer Chcę wartości odtwarzacza ciągu.

Czy to możliwe w C #?

Dalsze szczegóły: Wejdzie na listę graczy, która zawiera obiekty o nazwie od graczy. Tylko w tej konkretnej części kodu chcę, aby użytkownik wejść do jednego szczegóły gracza. Widzisz, cała lista graczy jest już wykonana już z obiektów o nazwach graczy (Ignoruj nazwę właściwości wewnątrz klasy w tym przypadku)

c#
-1
roi guber 19 październik 2020, 16:12

1 odpowiedź

Najlepsza odpowiedź

Zgodnie z zaleceniami w komentarzach możesz użyć słownika do przechowywania swoich instancji według nazwy.

using System;
using System.Collections.Generic;

class PlayersClass
{
    public int id;
    public string name, city, street, teamName;
    public DateTime birthDate;
    public float height;
}

public class Program
{
    public static void Main()
    {
        Dictionary<string, PlayersClass> players = new Dictionary<string, PlayersClass>();
        string player = "bob"; //Console.ReadLine();
        players[player] = new PlayersClass(){ 
          name = player
        };
        player = "justin"; //Console.ReadLine();
        players[player] = new PlayersClass() {
          name = player
        };
        Console.WriteLine(players["justin"].name);
    }
}

3
ADyson 19 październik 2020, 13:29