Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Słowo unsafe kluczowe oznacza niebezpieczny kontekst, który jest wymagany dla każdej operacji obejmującej wskaźniki. Aby uzyskać więcej informacji, zobacz Niebezpieczny kod i wskaźniki.
Dokumentacja języka C# zawiera ostatnio wydaną wersję języka C#. Zawiera również początkową dokumentację dla funkcjonalności w publicznych wersjach testowych nadchodzącego wydania języka.
Dokumentacja identyfikuje dowolną funkcję po raz pierwszy wprowadzoną w ostatnich trzech wersjach języka lub w bieżącej publicznej wersji zapoznawczej.
Wskazówka
Aby dowiedzieć się, kiedy funkcja została po raz pierwszy wprowadzona w języku C#, zapoznaj się z artykułem dotyczącym historii wersji języka C#.
unsafe Użyj modyfikatora w deklaracji typu lub elementu członkowskiego. Cały zakres tekstowy typu lub elementu członkowskiego jest niebezpiecznym kontekstem. Na przykład następująca metoda jest zadeklarowana za pomocą unsafe modyfikatora:
unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
// Unsafe context: can use pointers here.
}
Zakres niebezpiecznego kontekstu rozciąga się od listy parametrów na koniec metody, dzięki czemu można również używać wskaźników na liście parametrów:
unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
Możesz również użyć niebezpiecznego bloku, aby umożliwić korzystanie z niebezpiecznego kodu wewnątrz tego bloku. Przykład:
unsafe
{
// Unsafe context: can use pointers here.
}
Aby skompilować niebezpieczny kod, należy określić opcję kompilatora AllowUnsafeBlocks . Środowisko uruchomieniowe języka wspólnego nie może zweryfikować niebezpiecznego kodu.
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 Niebezpieczny kod w specyfikacji języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.
Zobacz także
- słowa kluczowe języka C#
-
fixedoświadczenie - Niebezpieczny kod, typy wskaźników i wskaźniki funkcji
- operatory powiązane ze wskaźnikiem