最上位レベルのステートメントとは?
  • C#

[C#] 最上位レベルのステートメントとは?

※ 当サイトは広告を含みます。

本来なら自動出力されたソースコードの解説に進みたいのですが、初心者に厄介な仕様があるので説明しておきます。
具体的には、最上位レベルのステートメント(top-level statements)と呼ばれる仕様なのですが、これが逆に難易度を上げてる感があるんですよね。

最上位レベルのステートメント

簡単に言うと本来書くべき部分を省略できる記述です。

では、まずは自動出力されたProgram.csを見てみましょう。こんな感じになってますかね?


// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

何ともシンプル。さらに1行目はコメントと言って、任意の説明を記述する方法です。
このコメントはプログラム的には何の意味もなく、一切の処理がされません。

つまりはコード的には2行目のみで、これは標準出力に文字列のHello, World!を出力せよって命令です。
このプログラムの場合、標準出力は実行した場合に表示される黒画面のことです。
試しにHello, World!の文字列を変更して実行してください。出力される文字列も変わりましたよね?

管理人

ソースコードを読んでどう思ったでしょう。もしかしてC#って短くて簡単と思いました?

りさ

余裕です。完全に理解しました。

管理人

残念だったね。実質1行になってるのは色々省略されてるからだよ。本来の自動出力されるコードはもう少し長いよ。

実は最近の.NET(正確なバージョンは忘れた)から最上位レベルのステートメントという機能が追加されました。
これは全てのプログラムで絶対に書くお約束コードを省略してもいいよって機能です。

つまりは知らないうちに本来理解するべき部分が省かれてます。

すでにC#を理解してる人からすれば嬉しい機能ですが、これから学ぶ人には厄介な機能だと思います。
と言うのも、省略部分を理解しないとコードが書けません。仮に先に進んでもどっかで詰みます。

最上位レベルのステートメントを利用しない方法

では、どうすればいいのか。これはプロジェクトを作る時の設定で利用有無を選択できます。
具体的にはプロジェクト作成時の次の画面です。この部分でチェックすることで、利用しないパターンを選択できます。

最上位レベルのステートメントを使用しない方法
管理人

次は本当の自動出力されるコードを確認します。チェックボックスをONでプロジェクトを生成してください。

本当の自動出力されるコード

改めて自動出力されたProgram.csを見てみましょう。こんな感じになりましたよね?


namespace Sample
{
  internal class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine("Hello, World!");
    }
  }
}
管理人

若干ですが長くなりましたね。これが真の最低限のコードです。

りさ

そんなに増えてない?

管理人

そう! 実際のところそんなに変わらないんだ。個人的な意見なんだけど、これ省略する意味ある? って思うんだよね。

あとがき

Pythonとかがこんな感じで簡単に記述できるから真似した説。
C#の場合はプロジェクトを作る必要があるから、そこ省略されても対して変わんないと思う。

管理人

初心者さんに向けて言うなら、省略版を使うべきではないです。なので、僕のC#講座は常に非省略系を使って解説します。

りさ

プロジェクトを作る時はチェックを忘れずに!

◆ C#に関する学習コンテンツ

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。