Ошибка компилятора CS0213Compiler Error CS0213

Для получения адреса ранее зафиксированного выражения нельзя использовать оператор fixedYou cannot use the fixed statement to take the address of an already fixed expression

Локальная переменная в методе unsafe или параметре уже зафиксирована (в стеке), поэтому невозможно получить адрес любой из этих двух переменных в выражении fixed .A local variable in an unsafe method or a parameter is already fixed (on the stack), so you cannot take the address of either of these two variables in a fixed expression. Дополнительные сведения см. в разделе Небезопасный код и указатели.For more information, see Unsafe Code and Pointers.

ПримерExample

Следующий пример приводит к возникновению ошибки CS0213:The following sample generates 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;  
      }  
   }  
}