2016-02-29 5 views
0

Моего кода это сервис, который необходим для вывода различных кодов состояния следующим образом:Объявляет целые внутри структур

if(something is valid) 
{ 
    if(this is found) 
    return "200"; 
    else 
    return 300; 
} 
else 
    return "100"; 

Есть много кодов, таких состояний, а также встречается в различных местах в приложении. Поэтому я хотел бы объявить их константами в одном месте и использовать их, чтобы не жестко кодировать строки.

что-то вроде

public struct StatusCodes 
{ 
    public static string 100 = "100"; 
    public static string 200 = "200"; 
} 

и иметь возможность использовать его в качестве

else return StatusCodes.100 

Есть ли стандартная практика или хороший способ сделать это.

+0

Я бы рекомендовал использовать имя вместо номера. Что означает «100»? Кроме того, почему бы и нет. – Divisadero

+2

Если вы просто используете числа, то, возможно, перечисление намного лучше ... else вместо struct использует статический класс с константами. – Gusman

+1

Идентификаторы не могут начинаться с номера, поэтому вы не можете выполнять 'StatusCodes.100', но, возможно, вы могли бы назвать их по их описанию и дать их значение реальному коду ошибки? т. е. 'public static string SomeCertainError =" 100 ";' – squill25

ответ

2

Как об этом:

public static class StatusCodes 
{ 
    public const string Code100 = "100"; 
    public const string Code200 = "200"; 
} 

и вы можете использовать его как:

return StatusCodes.Code100 
+2

Я думаю, что 'public const string Code100 =" 100 ";' будет лучшим выбором; иначе кто-то может легко переустановить значение: 'StatusCodes.Code100 =" bla-bla-bla ";' –

+0

@DmitryBychenko Правильно, я обновлю ответ. – romanoza

5

Я предлагаю использовать перечисления:

public enum Status { 
    One = 100, 
    Another = 200 
    } 

....

if (some condition) 
    return Status.One; 
    else 
    return Status.Another; 
+0

Проблема заключается в том, что текст не может использоваться как «Один», «Другой». Я должен уметь читать/называть их номерами. например: 'public enum Status {100 = 100}' – Qwerty

+2

Что можно сказать о public enum Status {Code100 = 100, Code200 = 200}? – Sunsetquest

+0

@Qwerty вы можете попробовать использовать Enum.Parse, я думаю. – Ian

1

Это лучше в вашем случае (если у вас действительно есть много статусов), чтобы создать статический класс с открытыми полями как:

public const string myStatus = "100";

Таким образом, ваши статусы будут храниться в одном месте. И вы можете написать MyClass.myStatus

+0

Вы уверены, что можете объявить номер таким образом? Он говорит, что ожидается идентификатор? – Qwerty

Смежные вопросы