Я пытаюсь преобразовать список в IEnumerable, чтобы убедиться, что разные списки не являются пустыми или пустыми:
Предположим, что myList - это список ‹T>. Затем в коде вызывающего абонента я хотел:
Validator.VerifyNotNullOrEmpty(myList as IEnumerable<object>,
@"myList",
@"ClassName.MethodName");
Код проверки будет выглядеть следующим образом:
public static void VerifyNotNullOrEmpty(IEnumerable<object> theIEnumerable,
string theIEnumerableName,
string theVerifyingPosition)
{
string errMsg = theVerifyingPosition + " " + theIEnumerableName;
if (theIEnumerable == null)
{
errMsg += @" is null";
Debug.Assert(false);
throw new ApplicationException(errMsg);
}
else if (theIEnumerable.Count() == 0)
{
errMsg += @" is empty";
Debug.Assert(false);
throw new ApplicationException(errMsg);
}
}
Однако это не работает. Он компилируется, но IEnumerable имеет значение null! Почему?