2014-02-20 2 views

답변

5

Expression.Parameter()은 ByRef 유형 (즉, ref 매개 변수)을 지원하며, Expression.Variable()은 지정된 예외가 발생합니다.

그들은 그렇지 않으면 동일하지만, 그 구현 세부 사항 그리고 당신은 그것에 의존해서는 안 :

public static ParameterExpression Parameter(Type type, string name) 
{ 
    bool isByRef = type.IsByRef; 
    if (isByRef) 
    { 
     type = type.GetElementType(); 
    } 
    return ParameterExpression.Make(type, name, isByRef); 
} 

public static ParameterExpression Variable(Type type, string name) 
{ 
    if (type.IsByRef) 
    { 
     throw Error.TypeMustNotBeByRef(); 
    } 
    return ParameterExpression.Make(type, name, false); 
}