Ответ 1
Просто проанализируйте строку и добавьте в int.
var number = (int)((game) Enum.Parse(typeof(game), pick));
Я работаю над базовой игрой в битву, чтобы помочь моим навыкам С#. Прямо сейчас у меня проблемы с переименованием. У меня есть:
enum game : int
{
a=1,
b=2,
c=3,
}
Я хотел бы, чтобы игрок передал вход "C", а некоторый код вернул целое число 3
. Как я могу настроить его для того, чтобы взять строку var (string pick;
) и преобразовать ее в правильный int, используя этот enum? Книга, которую я читаю на этом, немного запутанна.
Просто проанализируйте строку и добавьте в int.
var number = (int)((game) Enum.Parse(typeof(game), pick));
// convert string to enum, invalid cast will throw an exception
game myenum =(game) Enum.Parse(typeof(game), mystring );
// convert an enum to an int
int val = (int) myenum;
// convert an enum to an int
int n = (int) game.a;
просто приведение типов?
int a = (int) game.a
Если вы не уверены, что входящая строка будет содержать допустимое значение перечисления, вы можете использовать Enum.TryParse(), чтобы попытаться выполнить синтаксический анализ. Если это недействительно, это просто вернет false вместо того, чтобы выбрасывать исключение.
JP
Ответ прекрасен, но синтаксис беспорядочен.
Многое аккуратное выглядит примерно так:
public DataSet GetBasketAudit(enmAuditPeriod auditPeriod)
{
int auditParam =Convert.ToInt32(auditPeriod) ;