rksoftware

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

C# 2.0 以降の新機能の確認 - C# 9.0 - ローカル関数の属性

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

ローカル関数の属性

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/local-functions#local-function-syntax
 ローカル関数で属性をつけられる。

#nullable enable
static void Main(string[] args)
{
    var list = List(null);

    // ローカル関数に Obsolete 属性、NotNull 属性をつけている
    [System.Obsolete]
    static IEnumerable<int> List([System.Diagnostics.CodeAnalysis.NotNull] string text) => new int[0];
}