Niebezpieczny kod i wskaźniki (C# Programming Guide)Unsafe code and pointers (C# Programming Guide)

Aby zachować bezpieczeństwo typów i zabezpieczeń, C# nie obsługuje arytmetyki wskaźnika domyślnie.To maintain type safety and security, C# does not support pointer arithmetic, by default. Jednak przy użyciu niebezpieczne słów kluczowych, można zdefiniować niebezpieczny kontekst, w którym można użyć wskaźników.However, by using the unsafe keyword, you can define an unsafe context in which pointers can be used. Aby uzyskać więcej informacji o wskaźnikach, zobacz typy wskaźników.For more information about pointers, see Pointer types.

Uwaga

W środowisko uruchomieniowe języka wspólnego (CLR) niebezpieczny kod nazywa się zweryfikowanie kodu.In the common language runtime (CLR), unsafe code is referred to as unverifiable code. Niebezpieczny kod w języku C# nie są zawsze niebezpieczne; jest po prostu kod bezpieczeństwa, którego nie można zweryfikować przez środowisko CLR.Unsafe code in C# is not necessarily dangerous; it is just code whose safety cannot be verified by the CLR. Środowisko CLR w związku z tym tylko wykona niebezpieczny kod jeśli znajduje się w zestawie całkowicie zaufanym.The CLR will therefore only execute unsafe code if it is in a fully trusted assembly. Jeśli używasz niebezpieczny kod, jest odpowiedzialny za zapewnienie, kod nie wprowadzają zagrożenia dla bezpieczeństwa lub wskaźnik błędów.If you use unsafe code, it is your responsibility to ensure that your code does not introduce security risks or pointer errors.

Niebezpieczne Przegląd koduUnsafe code overview

Niebezpieczny kod ma następujące właściwości:Unsafe code has the following properties:

  • Metody, typy i bloków kodu mogą być definiowane jako niebezpieczny.Methods, types, and code blocks can be defined as unsafe.

  • W niektórych przypadkach niebezpieczny kod może zwiększyć wydajność aplikacji, usuwając kontroli granice tablicy.In some cases, unsafe code may increase an application's performance by removing array bounds checks.

  • Niebezpieczny kod jest wymagany podczas wywoływania funkcji natywnych, które wymagają wskaźników.Unsafe code is required when you call native functions that require pointers.

  • Za pomocą niebezpieczny kod wprowadza zagrożenia bezpieczeństwa i stabilności.Using unsafe code introduces security and stability risks.

  • Kod, który zawiera bloki niebezpieczne musi być skompilowana przy użyciu -unsafe — opcja kompilatora.The code that contains unsafe blocks must be compiled with the -unsafe compiler option.

Aby uzyskać więcej informacji, zobacz:For more information, see:

specyfikacja języka C#C# language specification

Aby uzyskać więcej informacji, zobacz niebezpieczny kod tematu C# specyfikacji języka.For more information, see the Unsafe code topic of the C# language specification.

Zobacz takżeSee also