メソッドの中にメソッドを定義できた

メソッドの中にメソッドを定義できるのを最近知った。ローカルメソッド?

以下のように、doTestメソッドの中に、debugPrintメソッドが定義できる。これなら、このメソッドの中でしか使わないメソッドをきれいに定義できる。

        void doTest()
        {
            /// メソッドの中にメソッドを定義できる
            void debugPrint(int n)
            {
                System.Diagnostics.Debug.Print($"#debug: {n}");
            }

            for (int i = 0; i < 10; i++)
            {
                debugPrint(i);
            }
        }

いつからできるようになったのだろう。

以前にこんな記事を書いていた。
https://nonbiri-dotnet.blogspot.jp/2017/02/blog-post.html

ローカル関数と云う機能でC#7.0から導入されたらしい。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/local-functions

コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。