Ошибка компилятора CS0213
Обновлен: Ноябрь 2007
Сообщение об ошибке
Нельзя использовать оператор fixed для получения адреса уже зафиксированного выражения
You cannot use the fixed statement to take the address of an already fixed expression
Локальная переменная в методе unsafe или параметре уже зафиксирована (в стеке), поэтому невозможно получить адрес любой из этих двух переменных в выражении fixed. Дополнительные сведения см. в разделе Небезопасный код и указатели (Руководство по программированию в C#).
Пример
Следующий пример проводит к возникновению ошибки CS0213.
// CS0213.cs
// compile with: /unsafe
public class MyClass
{
unsafe public static void Main()
{
int i = 45;
fixed (int *j = &i) { } // CS0213
// try the following line instead
// int* j = &i;
int[] a = new int[] {1,2,3};
fixed (int *b = a)
{
fixed (int *c = b) { } // CS0213
// try the following line instead
// int *c = b;
}
}
}