Поскольку изменение открытых полей позже, чтобы получить / установить аксессоры, нарушит код. См. этот ответ для получения дополнительной информации
Определите перечисление следующим образом:
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
Создайте словарь привязок:
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"
Лично я бы просто сохранил значение карты как целое число и использовал бы массив вместо словаря и перечисления.