Repository navigation
ES CSharp Memory Unsafe
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Span<T> y ReadOnlySpan<T> dan una vista de la memoria sin necesariamente copiar. Las variables ref-return y ref-local le permiten trabajar con una ubicación de almacenamiento existente. El compilador controla la vida útil de las referencias. ref struct no se puede utilizar como un campo de montón normal; los límites alrededor de await y yield dependen de la vida útil permitida.
Guarde este ejemplo por separado como Example.cs. Ejecútelo independientemente de los demás ejemplos de esta página.
Example.cs:
// PROJECT-EXAMPLE
System.Span<int> values = stackalloc int[] { 2, 3 };
System.Console.WriteLine(values[0] + values[1]);Resultado:
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 habilita punteros y funciones de memoria si la compilación incluye AllowUnsafeBlocks. fixed contiene la dirección del objeto movido a la ubicación deseada. Estas son características estándar de C# y no una forma de eludir las reglas de propiedad del mundo del juego.
// PROJECT-EXAMPLE
namespace UserTools;
public static class PointerExample
{
public static unsafe int ReadLocal()
{
int value = 42;
int* address = &value;
return *address;
}
}Documentación oficial: Memoria: ref, Span, ref struct y unsafe - Microsoft Aprender.
ClassicUO — Bad Newbie & C# Scripts IDE