Как насчет:
if (new[] {1, 2}.Contains(value))
Это взломать хотя:)
Или, если вы не возражаете против создания собственного метода расширения, вы можете создать следующее:
public static bool In<T>(this T obj, params T[] args)
{
return args.Contains(obj);
}
И вы можете использовать его следующим образом:
if (1.In(1, 2))
:)
Как правило, вы получите лучшие результаты поиска, если распечатаете номер ошибки в шестнадцатеричной форме, а не в десятичной форме со знаком.
Например, ваша первая ошибка - -1073741819, которая также может быть представлена на 0xC0000005 в шестнадцатеричном формате. Это ошибка "нарушение прав доступа", о чем Google быстро сообщит.
Вот их куча,
http://msdn.microsoft.com/en-us/library/ms681381 (VS.85) .aspx
Но когда У меня есть такой, как в вашем примере, я просто набираю номер в Google.
Поскольку система кодов ошибок Windows является расширяемой, не существует единого места для поиска всех возможных кодов ошибок Windows. Однако вы можете начать с:
ERRLOOK
. Попробуйте сначала, если вы используете Visual Studio. Winerror.h
. Я добавил ссылку на MSDN, которая содержит содержимое этого заголовочного файла. Или вы можете посмотреть список кодов ошибок по номеру на этой странице. Winerror.h
или другому файлу заголовка, чтобы получить фактические значения. найти
(например, Unix grep
) в каталоге Include
платформы SDK либо для шестнадцатеричного значения всего кода ошибки, либо для десятичного значения только части кода, то есть младших 16 бит. Используйте HRESULT_CODE
, чтобы извлечь это. См. Структуру кодов ошибок COM выше. Многие из них (но я не думаю, что те, которые связаны с COM) находятся в файле заголовка с именем winerror.h .
В (некоторых версиях) Visual Studio в меню « Инструменты
» вы можете найти пункт меню с именем « Поиск ошибок ...
».