数组属性

时间:2017-11-29 15:29:03

标签: c# arrays expression-trees

假设我们有这个类

class ClassA
{
    public ClassB[] MyProperty { get; set; }
}
class ClassB
{
    public int[] AnotherProperty { get; set; }
}

现在我想为AnotherProperty的给定实例访问ClassA的值以及反映两个数组的索引数组{ 3 , 5 },例如MyProperty。表示顶级中的第四个元素(评估为AnotherProperty)和第二个级别中的第六个元素(Func<ClassA, int[], int>)。因此,我将通过表达式树创建var instanceArgument = Expression.Parameter(typeof(MyClass), "x"); var indexesArgument = Expression.Parameter(typeof(int[]), "i"); var expr = instanceArgument; expr = Expression.Property(expr, "MyProperty"); expr = Expression.ArrayIndex(expr, ???); expr = Expression.Property(expr, "AnotherProperty"); expr = Expression.ArrayIndex(expr, ???); var f = Expression.Lambda<Func<ClassA, int[], int>>(expr, instanceArgument, indexesArgument);

indexesArgument

正如您所看到的,我不确定如何为表达式提供索引。我知道我必须使用反映传递给我们的委托的索引的3,但是如何访问值5u"\N{CHARACTER NAME}

0 个答案:

没有答案