Repository navigation
DE CSharp Keyword unsafe
Codex edited this page Oct 11, 2026
·
2 revisions
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Handbuch C# · Praktischer Leitfaden
Ermöglicht Zeigersyntax im angegebenen Bereich. Zum Kompilieren eines normalen Projekts ist AllowUnsafeBlocks erforderlich.
Speichern Sie dieses Beispiel separat als Example.cs. Führen Sie es unabhängig von den anderen Beispielen dieser Seite aus.
Example.cs:
// PROJECT-EXAMPLE
unsafe
{
int value = 3;
int* pointer = &value;
*pointer = 7;
System.Console.WriteLine(value);
}Aktivieren Sie <AllowUnsafeBlocks>true</AllowUnsafeBlocks> im Projekt. Der Zeiger ist nur im gezeigten Bereich gültig.
Ergebnis:
7
unsafe { Type* pointer = ...; }Stellen Sie in .csproj true ein. Bei verwalteten Daten ist es normalerweise einfacher, Span ohne Rohzeiger zu verarbeiten.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
unsafe { int* values = stackalloc int[2]; values[0] = 3; values[1] = 7; Console.WriteLine(values[0] + values[1]); Console.WriteLine(sizeof(int)); }
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
int[] values = [2, 4, 6];
unsafe { fixed (int* pointer = values) { pointer[1] = 9; Console.WriteLine(*(pointer + 1)); Console.WriteLine(sizeof(long)); } }
Console.WriteLine(values[1]);
}
}Offizielle Quelle: Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE