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

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

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

  1. void doTest()
  2. {
  3. /// メソッドの中にメソッドを定義できる
  4. void debugPrint(int n)
  5. {
  6. System.Diagnostics.Debug.Print($"#debug: {n}");
  7. }
  8.  
  9. for (int i = 0; i < 10; i++)
  10. {
  11. debugPrint(i);
  12. }
  13. }

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

以前にこんな記事を書いていた。
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 に変換中に、算術オーバーフロー エラーが発生しました。