표현식이 ConstantExpression
인 경우 테스트하려는 것은? NodeType
속성이나 캐스트에서 왜?표현식이 상수 표현식인지 확인하는 가장 좋은 방법
public static bool IsConstantExpression(Expression expression)
{
return expression.NodeType == ExpressionType.Constant;
return expression is ConstantExpression;
}
'ConstantExpression'은 봉인되어 있지 않으므로 누군가가 NodeType을 무시하고 다른 것을 반환 할 수 있습니다. NodeType에 대한 문서에 따르면 "확장 노드는이 메서드를 재정의 할 때 ExpressionType.Extension을 반환해야합니다." – vcsjones
@vcsjones 그러나 유일한 생성자는'internal'이므로 무시가 mscorlib로 제한됩니다. – svick
@svick 오, 좋은 점, 나는 그것을 알아 차리지 못했다. – vcsjones