По какой-то причине HttpResponseMessageProperty
, который я использую для возврата определенных кодов ответа HTTP клиенту, использует перечисление HttpStatusCode
. Это перечисление не включает 422, которое не включено в перечисление. Есть ли способ установить перечисление с использованием целого числа, поскольку это то, что находится под обложками?Возможно ли в .Net установить целочисленное перечисление на произвольное значение
ответ
Да, это возможно, - внутренне enum
значения просто integer, и вы можете «заставить» значение перечисления иметь недопустимое значение, и CLR будет продолжать свое веселье.
, например:
enum Foo {
Bar = 1,
Baz = 2
}
void Test() {
Foo foo; // as Foo is a value-type and no initial value is set, its value is zero.
Console.WriteLine(foo); // will output "0" even though there is no enum member defined for that value
Foo foo2 = (Foo)200;
Console.WriteLine(foo2); // will output "200"
}
Вот почему, при работе со значениями перечислений неизвестного происхождения, вы всегда должны обрабатывать default
дело и обрабатывать соответствующим образом:
public void DoSomethingWithEnum(Foo value) {
switch(value) {
case Foo.Bar:
// do something
break;
case Foo.Baz:
// do something else
break;
default:
// I like to throw this exception in this circumstance:
throw new InvalidEnumArgumentException("value", (int)value, typeof(Foo));
}
}
Помимо точки, но поскольку вы упоминаете ее, 'throw new InvalidEnumArgumentException (значение« value », (int) typeof (Foo)); 'более полезно для отладки недопустимого значения перечисления. – sstan
Да, вы можете иметь любое значение, которое вы хотите (до тех пор, как она находится в диапазоне от базового типа ENUM в Wich Usally это целый):
HttpStatusCode value = (HttpStatusCode)422;
Вы можете разыграть любое количество в перечисление, при условии, что перечисление имеет такую же базовую структуру (обычно это int
:
response.StatusCode = (HttpStatusCode)422;
- 1. Установить положение байт-массива на произвольное целочисленное значение
- 2. Установить целочисленное значение в indexpath.row
- 3. Возможно ли, чтобы Matlab разрешил символ как произвольное значение?
- 4. Как установить целочисленное значение на метку?
- 5. Установить целочисленное значение JavaFX TextField
- 6. Возможно ли установить домен переменной как перечисление имен в clpfd?
- 7. Возможно ли создать многоэкранное перечисление в mongoose
- 8. Инъекционное произвольное перечисление с WELD КДИ
- 9. Можете ли вы установить целочисленное значение null в C# 2.0?
- 10. Как получить целочисленное значение перечисления?
- 11. Как установить целочисленное значение в lable?
- 12. Как правильно установить целочисленное значение в NSDictionary?
- 13. установить целочисленное значение в качестве битовой маски
- 14. Возможно ли установить .Net Framework частично?
- 15. Возможно ли иметь перечисление enums в C++?
- 16. Возможно ли создать перечисление (enum) в ABAP?
- 17. установить целочисленное значение для определенных статусов
- 18. Библиотека Excel возможно целочисленное переполнение
- 19. Проверьте целочисленное значение на ASMX
- 20. бит-сдвиг на целочисленное значение
- 21. Изменить TextView на целочисленное значение
- 22. Возможно ли произвольное взаимодействие с использованием Mockito в компактном режиме?
- 23. Целое значение Целочисленное значение?
- 24. Выберите произвольное значение в SQL
- 25. Возможно ли установить значение поворота анимации на основе события касания?
- 26. Установить минимальное значение поля MySQL - возможно?
- 27. Произвольное значение байта в struct.pack()
- 28. Набор текста в целочисленное значение
- 29. Возможно ли установить детали для перегруженного метода в .net?
- 30. Gwtquery: установите целочисленное значение в sliderbar
Да, просто введите целочисленное значение, например: 'HttpStatusCode code = (HttpStatusCode) 422;' Нет гарантий относительно того, как это может негативно повлиять на вашу программу. (например, возможно, есть где-то проверка/проверка/логика, которая ожидает, что она будет одним из значений именованного имени) –