rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 9.0 - localsinit フラグの出力を抑制する

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

localsinit フラグの出力を抑制する

 https://docs.microsoft.com/ja-jp/dotnet/api/system.runtime.compilerservices.skiplocalsinitattribute
 System.Runtime.CompilerServices.SkipLocalsInit 属性がついている場合、ゼロ初期化がなされずパフォーマンスが向上する場合がある。

[System.Runtime.CompilerServices.SkipLocalsInit]
unsafe static void Main(string[] args)
{
    int i;
    int* j = &i;
    Console.WriteLine(*j);  // 0 でない値
}