Ошибка компилятора CS0838
Обновлен: Ноябрь 2007
Сообщение об ошибке
Дерево выражения не может включать инициализатор многомерного массива.
An expression tree may not contain a multidimensional array initializer.
Многомерные массивы в деревьях выражений нельзя инициализировать с помощью инициализатора массива.
Исправление ошибки
- Перед тем как создавать дерево выражения, создайте и инициализируйте массив.
Пример
Следующий пример проводит к генерированию ошибки CS0838:
// cs0838.cs
using System;
using System.Linq;
using System.Linq.Expressions;
namespace TestNamespace
{
class Test
{
static int Main()
{
Expression<Func<int[,]>> expr =
() => new int[2, 2] { { 1, 2 }, { 3, 4 } }; // CS0838
// try the following 2 lines instead
int[,] nums = new int[2, 2] { { 1, 2 }, { 3, 4 } };
Expression<Func<int[,]>> expr2 = () => nums;
return 1;
}
}
}