「[雑記] InlineArray」ページの記述の修正( `typeof(T)` -> `sizeof(T)`)
Closed this issue · 2 comments
CaptainFamicon commented
https://ufcpp.net/study/csharp/datatype/inline-array/#inline-array-attribute
構造体のサイズなので、typeof(T)
ではなく sizeof(T)
かと思われます。
T
は参照型を含む可能性があるので System.Runtime.CompilerServices.Unsafe.SizeOf<T>()
と書くとニヤリとしそうですが、それは野暮というもの・・・
using System.Runtime.CompilerServices;
// この属性を付けると、 .NET ランタイムが特別扱いして、構造体のサイズを拡大する。
// (コンストラクター引数で Length 指定。)
[InlineArray(3)]
struct FixedBuffer<T>
{
// フィールドを1個だけ書く。
// (2個以上書くとコンパイル エラーになる。)
// 構造体のサイズが typeof(T) × Length になる。 <<<----- ここ --------
private T _value;
}
ufcpp commented
今、書けますよ(野暮に野暮返す)。
unsafe
{
var s = sizeof(string); // C# 11 移行、警告のみ
}
直します…
ufcpp commented
修正。