Udostępnij za pośrednictwem


unsafe (odwołanie w C#)

unsafe Słowa kluczowego oznacza niebezpieczne kontekstu, która jest wymagana dla każdego działania związanego z wskaźniki.Aby uzyskać więcej informacji, zobacz Niebezpieczny kod i wskaźniki (Przewodnik programowania w języku C#).

Można użyć unsafe modyfikator w deklaracji typu lub członka.Cały zakres tekstowy typu lub członka jest uważana za niebezpieczne kontekstu.Na przykład następujące to metody zadeklarowane z unsafe modyfikator:

unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
    // Unsafe context: can use pointers here.
}

Zakres niebezpieczne kontekście rozciąga się od listy parametrów na koniec metoda, tak wskaźniki można również na liście parametrów:

unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}

Aby umożliwić stosowanie niebezpieczny kod wewnątrz bloku ten umożliwia także blok niebezpieczne.Na przykład:

unsafe
{
    // Unsafe context: can use pointers here.
}

Aby skompilować niebezpieczny kod, należy określić / unsafe opcję kompilatora.Niebezpieczny kod nie jest możliwe do zweryfikowania przez aparatu plików wykonywalnych języka wspólnego.

Przykład

// compile with: /unsafe 

    class UnsafeTest
    {
       // Unsafe method: takes pointer to int: 
       unsafe static void SquarePtrParam(int* p)
       {
          *p *= *p;
       }

       unsafe static void Main()
       {
          int i = 5;
          // Unsafe method: uses address-of operator (&):
          SquarePtrParam(&i);
          Console.WriteLine(i);
       }
    }
    // Output: 25

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.

Zobacz też

Informacje

Słowa kluczowe języka C#

fixed — Instrukcja (odwołanie w C#)

Niebezpieczny kod i wskaźniki (Przewodnik programowania w języku C#)

Bufory o ustalonym rozmiarze (Przewodnik programowania w języku C#)

Koncepcje

Przewodnik programowania w języku C#

Inne zasoby

Odwołanie w C#