1
この安全でないコードは.NET Core 3でも機能しますか?
Span<T>可能な場合はヒープ割り当てを回避するために使用するライブラリをリファクタリングしていますが、古いフレームワークも対象としているため、いくつかの一般的なフォールバックソリューションも実装しています。しかし今、私は奇妙な問題を発見しました。.NETCore 3にバグを発見したのか、それとも違法なことをしているのかはよくわかりません。 問題: // This returns 1 as expected but cannot be used in older frameworks: private static uint ReinterpretNew() { Span<byte> bytes = stackalloc byte[4]; bytes[0] = 1; // FillBytes(bytes); // returning bytes as uint: return Unsafe.As<byte, uint>(ref bytes.GetPinnableReference()); } // This returns garbage in .NET Core 3.0 with …
42
c#
stackalloc