示例#1
0
    public void StructWithMarshallingArrays()
    {
        int seed = 37;
        var rng  = new Random(seed);

        StructWithMarshal[] array = new StructWithMarshal[5];
        for (int i = 0; i < array.Length; i++)
        {
            for (int j = 0; j < array[i].I.Length; j++)
            {
                array[i].I[j] = rng.Next();
            }
        }

        int result = NativeFunctions.SumStructWithMarshal(array);

        Assert.Equal(array.SelectMany(x => x.I).Aggregate((x, a) => x + a), result);
    }