Repository navigation
FR CSharp Memory Unsafe
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Span<T> et ReadOnlySpan<T> donnent une vue sur la mémoire sans nécessairement copier. ref-return et ref-local variable vous permettent de travailler avec un emplacement de stockage existant. Le compilateur contrôle la durée de vie des références. ref struct ne peut pas être utilisé comme champ de tas normal ; les limites autour de await et yield dépendent de la durée de vie autorisée.
Enregistrez cet exemple séparément dans Example.cs. Exécutez-le indépendamment des autres exemples de cette page.
Example.cs:
// PROJECT-EXAMPLE
System.Span<int> values = stackalloc int[] { 2, 3 };
System.Console.WriteLine(values[0] + values[1]);Résultat:
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 active les pointeurs et les fonctions mémoire si la compilation inclut AllowUnsafeBlocks. fixed contient l'adresse de l'objet déplacé à l'emplacement souhaité. Il s'agit de fonctionnalités standard C# et ne constituent pas un moyen de contourner les règles de propriété du monde du jeu.
// PROJECT-EXAMPLE
namespace UserTools;
public static class PointerExample
{
public static unsafe int ReadLocal()
{
int value = 42;
int* address = &value;
return *address;
}
}Documentation officielle : Mémoire : ref, Span, ref struct et unsafe - Microsoft Apprendre.
ClassicUO — Bad Newbie & C# Scripts IDE