2013-04-01 1 views
2

사용하여 식 트리를 구문 분석하려고 할 때 다음NewArrayExpression의 크기를 찾기

private static XElement Parse(NewArrayExpression newArray) 
{ 
    IEnumerable<XElement> items = newArray.Expressions 
     .Select(item => new XElement(ExpressionTag.NewArrayItem, Parse((dynamic)item))); 

    return new XElement(ExpressionTag.NewArrayNode, items); 
} 

I했습니다 new Int32[5]를 전달하는 점에서 new Int32[] { 5 }에 동일한 정보를 생산하는 것을 발견 단지로 채워 가져옵니다 NewArrayExpression.Expressions 특성 내가 상상 한 것은 건설 매개 변수라고 생각합니다. 문제는 매개 변수가 길이 인 경우 일 때 또는 실제로 항목 인 경우를 알 수있는 방법이 없습니다. MSDN 가입일

답변

3

다음은 NodeType 속성 값이 경우 새로운 배열의 요소를 초기화 NewArrayBounds 또는 값이면

NewArrayExpression.Expressions 속성

배열의 범위를 취득 NodeType 속성 값은 NewArrayInit입니다.

기본적으로 NodeType 속성에서 분기하면 명확성을 확보하는 데 도움이됩니다.

+0

Sick dude, 그건 완벽합니다. 그것은'NewArrayBounds' 또는'NewArrayInit'입니다. 감사! – sircodesalot