Прочитать на английском

Поделиться через


Ошибка компилятора CS0208

Невозможно получить адрес, определить размер или объявить указатель на управляемый тип ("тип")

Даже при использовании ключевого слова unsafe получение адреса управляемого объекта, получение размера управляемого объекта и объявление указателя на управляемый тип не допускается. Управляемый тип — это:

  • любой ссылочный тип;

  • любая структура, которая содержит ссылочный тип в качестве поля или свойства.

Дополнительные сведения см. в разделе Неуправляемые типы.

Пример

При компиляции следующего примера возникнет ошибка CS0208:

// CS0208.cs  
// compile with: /unsafe  
  
class myClass  
{  
    public int a = 98;  
}  
  
struct myProblemStruct  
{  
    string s;  
    float f;  
}  
  
struct myGoodStruct  
{  
    int i;  
    float f;  
}  
  
public class MyClass  
{  
    unsafe public static void Main()  
    {  
        // myClass is a class, a managed type.  
        myClass s = new myClass();
        myClass* s2 = &s;    // CS0208  
  
        // The struct contains a string, a managed type.  
        int i = sizeof(myProblemStruct); //CS0208  
  
        // The struct contains only value types.  
        i = sizeof(myGoodStruct); //OK  
  
    }  
}