2

次を使用して式ツリーを解析しようとする場合:

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);
}

渡すと、構築パラメーターであると思われるものでプロパティが埋められるという点でnew Int32[5]、同じ情報が生成されることがわかりました。問題は、パラメータがいつlengthなのか、実際のitemなのかを判断する方法がないことです。new Int32[] { 5 }NewArrayExpression.Expressions

4

1 に答える 1

3

MSDNから:

NewArrayExpression.Expressions財産

NodeType プロパティの値が NewArrayBounds の場合は配列の境界を取得し、NodeType プロパティの値が NewArrayInit の場合は新しい配列の要素を初期化する値を取得します。

基本的に、プロパティの分岐はあいまいさを解消するのNodeTypeに役立ちます。

于 2013-04-01T15:22:27.470 に答える