Смесь строки и числа в перечислении?

Поскольку изменение открытых полей позже, чтобы получить / установить аксессоры, нарушит код. См. этот ответ для получения дополнительной информации

1
задан sujith karivelil 27 February 2019 в 09:43
поделиться

2 ответа

Определите перечисление следующим образом:

 public enum Face
 {
    A=1, 
    Two, 
    Three, 
    Four, 
    Five, 
    Six, 
    Seven, 
    Eight, 
    Nine, 
    Ten,
    J, 
    Q, 
    K
 }

Затем вы можете получить доступ к значению как целому числу, используя приведение (int)Face.J, которое даст вам 11. Пожалуйста, обратитесь к этой работе . Пример .

Обратите внимание: Вы можете назначить целочисленные значения для enum, если не назначено, то будет принято первое значение, так как 0 +1 будет добавлено к последующим элементам. Это означает, что если вы используете код (int)Face.J без присваивания, вы получите значение 10 вместо 11

0
ответ дан sujith karivelil 27 February 2019 в 09:43
поделиться

Создайте словарь привязок:

public enum Face
{
    A, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, J, Q, K
}

public Dictionary<Face, string> cardValues = new Dictionary<Face, string> {
    [Face.A] = "A",
    [Face.Two] = "2",
    [Face.Three] = "3",
    ...
}

public string card = cardValues[Face.Two]; // "2"

Лично я бы просто сохранил значение карты как целое число и использовал бы массив вместо словаря и перечисления.

0
ответ дан James Coyle 27 February 2019 в 09:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: