C# 根据变量显示对象信息

C# 根据变量显示对象信息,c#,C#,我正在尝试制作一个21点游戏,我有一个函数,可以打印ASCII格式的卡 public static void PrintCard() { Console.SetCursorPosition(x + 0, 0); Console.Write(" _____ "); Console.SetCursorPosition(x + 0, 1); Console.Write("|"); Console.SetCurso

我正在尝试制作一个21点游戏,我有一个函数,可以打印ASCII格式的卡

public static void PrintCard()
    {

        Console.SetCursorPosition(x + 0, 0);
        Console.Write(" _____ ");
        Console.SetCursorPosition(x + 0, 1);
        Console.Write("|");
        Console.SetCursorPosition(x + 1, 1);
        Console.Write(Ten.CardChar);
        Console.SetCursorPosition(x + 6, 1);
        Console.Write("|");
        Console.SetCursorPosition(x + 0, 2);
        Console.Write("|");
        Console.SetCursorPosition(x + 6, 2);
        Console.Write("|");
        Console.SetCursorPosition(x + 0, 3);
        Console.Write("|");
        Console.SetCursorPosition(x + 6, 3);
        Console.Write("|");
        Console.SetCursorPosition(x + 0, 4);
        Console.Write("|");
        Console.SetCursorPosition(x + 6, 4);
        Console.Write("|");
        Console.SetCursorPosition(x + 0, 5);
        Console.Write("|");
        Console.SetCursorPosition(x + 6, 5);
        Console.Write("|");
        Console.SetCursorPosition(x + 0, 6);
        Console.Write("|____");
        if(NameOfCard == "Ten")
        {
            Console.SetCursorPosition(x + 4, 6);
            Console.Write(Ten.CardChar);
        }
        else
        {
            Console.SetCursorPosition(x + 5, 6);
            Console.Write(Ace.CardChar);
        }

        Console.SetCursorPosition(x + 6, 6);
        Console.Write("|");
由于有不同的卡片,我如何根据字符串变量选择显示哪个CardChar?这些是卡片对象的详细信息,第一个是CardName,第二个是CardValue,第三个是CardChar

static Card Ace =   new Card("Ace",   0,  "A");
    static Card Two =   new Card("Two",   2,  "2");
    static Card Three = new Card("Three", 3,  "3");
    static Card Four =  new Card("Four",  4,  "4");
    static Card Five =  new Card("Five",  5,  "5");
    static Card Six =   new Card("Six",   6,  "6");
    static Card Seven = new Card("Seven", 7,  "7");
    static Card Eight = new Card("Eight", 8,  "8");
    static Card Nine =  new Card("Nine",  9,  "9");
    static Card Ten =   new Card("Ten",   10, "10");
    static Card Jack =  new Card("Jack",  10, "J");
    static Card Queen = new Card("Queen", 10, "Q");
    static Card King =  new Card("King",  10, "K");

当它显示Ten.CardChar时,我如何才能使它与字符串一起工作,例如NameOfCard.CardChar?十存储在卡的名称中的什么位置?

我不知道您的问题是否正确,但您已经问过如何根据字符串选择卡?这可以通过使用
字典
类轻松完成:

Dictionary<string, Card> _cards = new Dictionary<string, Card>();
//_cards.Add("ace", Ace);
//or
_cards.Add("ace", new Card("Ace",   0,  "A"));

我想选择使用字符串显示哪些信息,例如它的Ten.CardChar,它是一个现有的对象,但如果我使用NameOfCard.CardChar,它就不起作用,即使“Ten”存储在其中。这对你的方法有用吗?不,因为C#是编译语言而不是解释语言。这就是为什么我建议使用
字典
,因为它的作用与您想要的几乎相同。
// instead of :
//if(NameOfCard == "Ten")
//{
//    Console.SetCursorPosition(x + 4, 6);
//    Console.Write(Ten.CardChar);
//}
//else
//{
//    Console.SetCursorPosition(x + 5, 6);
//    Console.Write(Ace.CardChar);
//}

// do this :
if(_cards.ContainsKey(NameOfCard))
{
     Console.SetCursorPosition(x + 4, 6);
     Console.Write(_cards[NameOfCard].CardChar);
}
else
{
    Console.SetCursorPosition(x + 5, 6);
    Console.Write(Ace.CardChar);
}