Repository navigation
KO CSharp Memory Unsafe
Codex edited this page Oct 11, 2026
·
2 revisions
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Span<T> 및 ReadOnlySpan<T>는 복사할 필요 없이 메모리에 대한 보기를 제공합니다. ref-return 및 ref-로컬 변수를 사용하면 기존 저장 위치로 작업할 수 있습니다. 컴파일러는 참조의 수명을 제어합니다. ref struct는 일반 힙 필드로 사용할 수 없습니다. await 및 yield에 대한 제한은 허용된 수명에 따라 다릅니다.
이 예제를 Example.cs로 따로 저장하고 이 페이지의 다른 예제와 독립적으로 실행하세요.
Example.cs:
// PROJECT-EXAMPLE
System.Span<int> values = stackalloc int[] { 2, 3 };
System.Console.WriteLine(values[0] + values[1]);결과:
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는 컴파일에 AllowUnsafeBlocks이 포함된 경우 포인터와 메모리 기능을 활성화합니다. fixed는 원하는 위치로 이동된 객체의 주소를 보유합니다. 이는 표준 C# 기능이며 게임 세계 소유권 규칙을 우회하는 방법이 아닙니다.
// PROJECT-EXAMPLE
namespace UserTools;
public static class PointerExample
{
public static unsafe int ReadLocal()
{
int value = 42;
int* address = &value;
return *address;
}
}ClassicUO — Bad Newbie & C# Scripts IDE