2022の7日目の記事です。空いてたので即興で書きました。Worldもいろいろな書き方が出来るようになっています。World");の1行しかなく、にもかかわらず実行できるのを見て戸惑った人も居るのではないでしょうか。Worldを短く書くための3つの機能を紹介し、最終的に上記の1行コードにしていきます。以下では特記無き限りMainは返り値void、引数string[]としました。基本的な書き方はおそらく以下のようになると思います。Worldしています。言う事は無いでしょう。上記ではnamespaceでスコープを括っているが、ファイルスコープ名前空間という機能を使えばこの括りを外せ、インデントを1段減らすことが出来ます。}}これは、ファイル全体が名前空間で括られているのと同じ扱いになります。一応デメリットとして、ファイルスコープ名前空間を使うと1ファイルに1つしか名前空間を(通常の名前空間もファイルスコープ名前空間も)指定できませんが、普通1ファイルに複数名前空間を指定することは無いので問題ないでしょう。usingという機能が追加されました。Systemしているのと同じことになります。.NET6ではこれを利用してImplicitUsingsという機能が提供されています。usingしてくれるというものです。System.Threading.Tasks;が自動的に行われた扱いになります。内容はプロジェクトの種類によって異なる様です。Worldは以下のようになります。Systemが無くなりました。幾分すっきりしましたね。3.トップレベルステートメントC#9から、トップレベルステートメントと言って、名前空間やクラスや関数の外、トップレベルの場所に直接式(ステートメント)を書けるようになりました。Worldは、Mainの中身だけ抜き取って以下のように書けます。World");これが始めに出てきた1行コードの正体です。実際にはコンパイル時にclassとMainが自動生成されている様です。注意点として、トップレベルステートメントより上に名前空間やクラスを定義するとエラーになります。TopLevel{}また、トップレベルステートメントを書けるのは1プロジェクトに1ファイルまでです。関数やusingは上に定義できます。World");Hello();この関数はプロジェクト全体から見ることが出来ますが、アクセスは出来ないようになっています。ちなみにこのトップレベルステートメント、awaitを使うと自動生成Mainは勝手にasyncになってくれます。Task.Delay(5000);Console.WriteLine("World.");のようにTaskも使用できます。refは直接使用できません。Worldを簡潔に書けるようになる機能3つを紹介しました。決まり切ったことを省略できるのは便利で嬉しいことです。大きく見た目の変わるトップレベルステートメントはともかく、ファイルスコープ名前空間とImplicitUsingsは便利なので使っていきたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。