Erro do compilador CS0208
Não é possível tomar o endereço de, obter o tamanho de, ou declarar um ponteiro para um tipo gerenciado ('tipo')
Mesmo quando usado com a palavra-chave insegura , tomar o endereço de um objeto gerenciado, obter o tamanho de um objeto gerenciado ou declarar um ponteiro para um tipo gerenciado não é permitido. Um tipo gerenciado é:
qualquer tipo de referência
qualquer struct que contenha um tipo de referência como um campo ou propriedade
Para obter mais informações, consulte Tipos não gerenciados.
O exemplo a seguir gera 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
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: