Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Nyckelordet unsafe anger en osäker kontext som krävs för alla åtgärder som rör pekare. Mer information finns i Osäker kod och pekare.
Du kan använda unsafe modifieraren i deklarationen av en typ eller en medlem. Hela textmängden för typen eller medlemmen anses därför vara en osäker kontext. Följande är till exempel en metod som deklarerats unsafe med modifieraren:
unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
    // Unsafe context: can use pointers here.
}
Omfånget för den osäkra kontexten sträcker sig från parameterlistan till slutet av metoden, så pekare kan också användas i parameterlistan:
unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
Du kan också använda ett osäkert block för att aktivera användning av en osäker kod i det här blocket. Till exempel:
unsafe
{
    // Unsafe context: can use pointers here.
}
Om du vill kompilera osäker kod måste du ange kompilatoralternativet AllowUnsafeBlocks . Osäker kod kan inte verifieras av den vanliga språkkörningen.
Exempel
// 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
Språkspecifikation för C#
Mer information finns i Osäker kod i C#-språkspecifikationen. Språkspecifikationen är den slutgiltiga källan för C#-syntax och -användning.