この「C#入門シリーズ」では、C#初心者の方に向けて、実務でよく使われる文法を全13回にわたって解説していきます。
今回は、C#で必ず押さえるべき文法ルールやコーディングの決まりごとを、「Hello World」のサンプルを通して丁寧に解説します。
※まだC#の開発環境を構築していない場合は、まず以下の記事を参考にしてください。
- Windowsユーザー向け:Visual Studio 2022でC#開発環境を構築する | hiranote
- Macユーザー向け:Visual Studio Code (VSCode) でC#開発環境を構築する | hiranote
Mainメソッドと従来の構文
Visual Studio 2022でC#のプロジェクトを作成する際に「最上位レベルのステートメントを使用しない」のチェックをOFFにすると、以下のコードが最初から生成されます。
Console.WriteLine("Hello, World!");
これは「トップレベルステートメント(最上位レベルのステートメント)」と呼ばれる省略記法で、C# 9.0から導入された比較的新しい書き方です。
最近のC#では、トップレベルステートメントが標準になっているので、最初はこのスタイルから学び始めても問題ありません。
ただ、実務ではトップレベルステートメントを使わず、従来のフル構文を使うケースもあります。C#の本来の構造を理解しておくと、今後の学習やエラー対応にも役立ちます。
プロジェクト作成後も、工具のアイコン(クイック操作)から「’Program.Main’ スタイルプログラムに変換」にクリックすることで、いつでも従来の書き方に変換できます。

以下が、従来の省略しない書き方です。
namespace FirstApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
このコードを順に見ていきましょう。
- namespace FirstApp:このプログラムが
FirstApp
という「名前空間」に属していることを示しています。名前空間は、複数のクラスや機能を整理するための「フォルダのような役割」を果たします。 - class Program:
Program
という名前のクラスを定義しています。クラスは、機能をまとめる「箱」のようなもので、C#では全ての処理がクラスの中に書かれます。 - static void Main(string[] args):
- この
Main
メソッドは、C#プログラムの「エントリーポイント(入り口)」です。プログラムを実行すると、まず最初にこの中の処理が動きます。 - メソッドとは、「ひとまとまりの処理に名前を付けたもの」で、他の言語では「関数」と呼ばれることもあります。
- string[] args はコマンドライン引数を受け取るための引数で、今回は使いませんが定型的に書かれます。
- この
- Console.WriteLine(“Hello, World!”);:コンソール(黒い画面)に「Hello, World!」と表示する命令です。
このように、トップレベルステートメントで省略されていた構造が、裏側ではこのように展開されていると理解しておくと、後々の学習がスムーズになります。
C#の基本ルール
C#には、守るべき基本的な文法ルールがあります。
正しく理解しておくことで、エラーの発生を防ぎ、他の人にも読みやすいコードを書くことができます。
すべて半角で書く・大文字小文字を区別する
C#では英数字や記号は必ず半角で入力します。全角のかっこや記号は見た目が似ていてもエラーの原因になります。
また、大文字と小文字は区別されるので注意しましょう。
Main // 正しい(C#での入口メソッドの名前)
main // 誤り(別の名前と認識される)
命令の終わりにはセミコロンを付ける
C#では、1つの命令(文)の末尾にセミコロン(;
)を付ける決まりがあります。
セミコロンを忘れると、プログラムはどこまでが1つの命令なのかを判断できず、エラーになります。
Console.WriteLine("Hello"); // OK
Console.WriteLine("Hello") // エラー(セミコロン忘れ)
文字列はダブルクォーテーションで囲む
文字列(string)は、文章や単語など複数の文字を扱うときに使います。C#では、文字列は必ずダブルクォーテーション("
)で囲みます。
シングルクォーテーション('
)は、char型(1文字専用)なので、1文字だけのときに使います。複数文字をシングルクォーテーションで囲むとエラーになります。
Console.WriteLine("こんにちは"); // OK(string型、文字列)
Console.WriteLine('こ'); // OK(char型、1文字だけ)
Console.WriteLine('こんにちは'); // エラー(char型は1文字だけ)
C#の「文字列(string)」は、複数の「char型(1文字)」の集合体として扱われます。例えば、"ABC"
は3つのchar(’A’, ‘B’, ‘C’)の集まりです。
処理のかたまりは中かっこ{}で囲む
複数の命令をまとめて1つのかたまりにしたいときは、中かっこ {}
で囲みます。
このように囲まれた部分を「ブロック」と呼びます。
class Program
{
static void Main()
{
Console.WriteLine("Hello");
}
}
ブロックのスタイルには「中括弧 {}
を改行して書く(Allmanスタイル)」か、「同じ行に書く(K&Rスタイル)」かという2つの流派があります。
以下はK&Rスタイルの書き方です。JavaやJavaScriptなど他の言語でよく見られます。
class Program {
static void Main() {
Console.WriteLine("Hello");
}
}
C#ではAllmanスタイルが用いられることが多く、Microsoftのコーディング規約や、Visual Studioのデフォルト設定でも採用されています。
どちらが正しいということはありませんが、プロジェクト内ではスタイルを統一するようにしましょう。
インデント(字下げ)で階層を揃える
C#では、インデント(字下げ)と呼ばれる「行の先頭に空白を入れる書き方」で、コードの階層構造をわかりやすくします。
文法上はインデントがなくても動作しますが、実務やチーム開発では「読みやすさ」のために必須です。
class Program
{
static void Main()
{
if (true)
{
Console.WriteLine("OK");
}
}
}
C#では、インデントの幅は スペース4つまたはTab1つ が主流です。
Visual Studioでは、自動でインデントを整えてくれるショートカット(Ctrl + K
→ D
)があるので積極的に活用しましょう。
コメントの書き方
コメントは、プログラム内にメモや説明を書いておくためのもので、プログラムの動作には影響しません。
コメントは2種類あります。
- 1行コメント:
//
を使って書きます。 - 複数行コメント:
/* ~ */
で囲みます。
// これは1行のコメントです
/* これは
複数行にまたがる
コメントです */
自分だけでなく、他の人にもわかりやすいコードにするために、コメントは積極的に活用しましょう。
命名規則(パスカルケースとキャメルケース)
C#では名前付けルール(命名規則)があります。
命名規則はコンパイラで強制されるものではありませんが、現場やプロジェクトで必ず守られている「コーディングの慣習」です。
名前の付け方が統一されていると、他の人が読んだときも、役割や種類がすぐに分かるというメリットがあります。
パスカルケース(PascalCase)
クラス名、メソッド名などは、単語の頭文字をすべて大文字にしてつなげる書き方(パスカルケース)を使います。※クラス・メソッドについては第7回で説明します。
// クラス
class HelloWorldApp { }
// メソッド
void PrintMessage() { }
キャメルケース(camelCase)
変数や引数(メソッドが受け取る値)には、最初の単語は小文字で、2単語目以降の頭だけ大文字にする書き方(キャメルケース)が一般的です。※変数については第1回、引数は第7回で説明します。
// 変数
int userAge = 25;
// メソッドの引数
void PrintGreeting(string userName) { } // 引数はキャメルケース
補足
- 予約語(例:
class
,int
,public
など)はクラスやメソッド名として使うことはできません。 - クラス名やメソッド名に日本語を使うことも技術的には可能ですが、現場では英語で付けるのが一般的です。
- より詳細な命名規則については、Microsoft公式:C# 識別子の名前付け規則と表記規則 を参照してください。
まとめ
C#の文法や決まりごとは、一見細かく感じるかもしれませんが、これらを最初に押さえておくことでスムーズにプログラミングを進めることができます。
次回は「変数とデータ型」について詳しく解説します。プログラムでデータを扱う基本を学んでいきましょう。