タグ

2021年11月28日のブックマーク (1件)

  • 【C#】配列、stringの内部実装とSpan<T>のありがたみ - Qiita

    はじめに C#で、組み込み型1にできてユーザー定義型ではできないことの一つに可変長の型の作成があります。 つまり、配列型(T[])と文字列型(string)は可変長の参照型という、特別扱いを受ける型なのです。 そこで、これらの型がメモリ上にどのように配置されるのかについて調べてみました。 調査 ポインタを用いて、stringとbyte[]のメモリ上での配置のされ方を実際に調べます。.NET6で実際に調べた結果ですので、すべての環境でこのようになることが保障されているわけではありません。ご了承ください。C#では参照型へのポインタはunsafeコンテキストでも禁止されていますが、Unsafeクラス(System.Runtime.CompilerServices名前空間)にあるメソッド群(Unsafe.AsやUnsafe.AsPointer)を駆使すると、強引にポインタ化できます。2

    【C#】配列、stringの内部実装とSpan<T>のありがたみ - Qiita
    edo_m18
    edo_m18 2021/11/28
    分かりやすい。