本来なら自動出力されたソースコードの解説に進みたいのですが、初心者に厄介な仕様があるので説明しておきます。
具体的には、最上位レベルのステートメント(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#に関する学習コンテンツ
この記事は参考になりましたか?
コメント