Каков наилучший способ проверить, нет ли экземпляра System.Linq.Expressions.Expression
? Например, что-то вроде этого:Как проверить, является ли выражение пустым (void)?
Expression expression = Expression.Empty();
...
if (expression.IsEmpty) { ...
только что IsEmpty
не существует.
Одна идея заключается в том, чтобы проверить результат ToString
:
if (expression.ToString() == "default(Void)") { ...
, но это не кажется правильным.
Но это не значит, что никогда не может быть выражением, которое является типом недействительным и значение по умолчанию, которое представляет собой нечто иное, чем пустое выражение. – Servy
Это был бы мой следующий вопрос. Я вижу часть по умолчанию, но не проверяет 'expression.Type == typeof (System.Void)' достаточно? Что-то не может быть пуще, чем сама пустота ... не так ли? – Dejan
@Dejan Это неправда. Есть все виды выражений, которые не имеют типа. Это просто означает, что они не дают значения (и поэтому используются для их побочных эффектов). – Servy