Error del compilador CS1919

Actualización: noviembre 2007

Mensaje de error

El tipo 'nombre de tipo' no seguro no se puede usar para crear un objeto.
Unsafe type 'type name' cannot be used in object creation.

El operador new solamente crea objetos en el montón administrado. Sin embargo, puede crear objetos en la memoria no administrada indirectamente utilizando las funciones de interoperabilidad del lenguaje para llamar a métodos nativos que devuelven punteros.

Para corregir este error

  1. Utilice un tipo seguro en la nueva expresión de creación de objeto. Por ejemplo, utilice char o int en lugar de char* o int*.

  2. Si debe crear objetos en la memoria no administrada, utilice un método COM o Win32; de lo contrario, escriba su propia función en C o C++ y llámela desde C#.

Ejemplo

El ejemplo siguiente genera el error CS1919 porque hay un tipo de puntero no seguro:

// cs1919.cs
// Compile with: /unsafe
unsafe public class C
{
    public static int Main()
    {
        var col1 = new int* { }; // CS1919
        var col2 = new char* { }; // CS1919
        return 1;
    }
}

Vea también

Referencia

Interoperabilidad (Guía de programación de C#)