Repository navigation
DE CSharp Memory Unsafe
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Span<T> und ReadOnlySpan<T> geben einen Überblick über den Speicher, ohne unbedingt zu kopieren. ref-return und ref-local Variable ermöglichen es Ihnen, mit einem vorhandenen Speicherort zu arbeiten. Der Compiler steuert die Lebensdauer von Referenzen. ref struct kann nicht als reguläres Heap-Feld verwendet werden; Die Grenzwerte um await und yield hängen von der zulässigen Lebensdauer ab.
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
System.Span<int> values = stackalloc int[] { 2, 3 };
System.Console.WriteLine(values[0] + values[1]);Ergebnis:
5
static int SumSmall()
{
Span<int> values = stackalloc int[] { 1, 2, 3 };
int total = 0;
foreach (int value in values) total += value;
return total;
}
UO.Print(SumSmall().ToString());unsafe aktiviert Zeiger und Speicherfunktionen, wenn die Kompilierung AllowUnsafeBlocks enthält. fixed speichert die Adresse des verschobenen Objekts am gewünschten Ort. Hierbei handelt es sich um standardmäßige C#-Funktionen und nicht um eine Möglichkeit, die Eigentumsregeln der Spielwelt zu umgehen.
// PROJECT-EXAMPLE
namespace UserTools;
public static class PointerExample
{
public static unsafe int ReadLocal()
{
int value = 42;
int* address = &value;
return *address;
}
}Offizielle Dokumentation: Speicher: ref, Span, ref struct und unsafe - Microsoft Lernen.
ClassicUO — Bad Newbie & C# Scripts IDE