この「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");
}
}
インデント(字下げ)で階層を揃える
C#では、インデント(字下げ)を使って階層構造を明確にするのが一般的です。
文法上はインデントがなくても動作しますが、実務やチーム開発では「読みやすさ」のために必須です。
class Program
{
static void Main()
{
if (true)
{
Console.WriteLine("OK");
}
}
}
特に次のようなスタイルが主流です。
{}
は その行の末尾または次の行の先頭に置く- インデントの幅は スペース4つまたはTab1つ
Visual Studioでは、自動でインデントを整えてくれるショートカット(Ctrl + K
→ D
)があるので積極的に活用しましょう。
コメントの書き方
コメントは、プログラム内にメモや説明を書いておくためのものです。コンピュータは無視するので、動作には影響しません。
コメントには2種類あります:
- 1行コメント:
//
を使って書きます。 - 複数行コメント:
/* ~ */
で囲みます。
// これは1行のコメントです
/* これは
複数行にまたがる
コメントです */
自分だけでなく、他の人にもわかりやすいコードにするために、コメントは積極的に活用しましょう。
命名規則(パスカルケースとキャメルケース)
C#ではクラス名やメソッド名などを付ける際にも決まりごと(命名規則)があります。
名前の付け方が統一されていると、自分だけでなく他の人が読んだときも、クラスやメソッドなどの役割や種類がすぐに分かるというメリットがあります。
パスカルケース(PascalCase)
クラス名、メソッド名、プロパティ名などは、単語の頭文字をすべて大文字にしてつなげる書き方(PascalCase)を使います。
class HelloWorldApp { }
void PrintMessage() { }
string UserName { get; set; }
キャメルケース(camelCase)
変数名や引数名には、最初の単語は小文字、2単語目以降の頭だけ大文字にする書き方(camelCase)が一般的です。
int userAge = 25;
string messageText = "こんにちは";
void PrintGreeting(string userName) { } // 引数(メソッドが受け取る値)はキャメルケース
ポイント
- 命名規則はコンパイラで強制されるものではありませんが、現場やプロジェクトで必ず守られている「コーディングの慣習」です。
- 予約語(例:
class
,int
,public
など)はクラスやメソッド名として使うことはできません。 - クラス名やメソッド名に日本語を使うことも技術的には可能ですが、現場では英語で付けるのが一般的です。
- より詳細な命名規則については、Microsoft公式:C# 識別子の名前付け規則と表記規則 を参照してください。
まとめ
C#の文法や決まりごとは、一見細かく感じるかもしれませんが、これらを最初に押さえておくことでスムーズにプログラミングを進めることができます。
次回は「変数とデータ型」について詳しく解説します。プログラムでデータを扱う基本を学んでいきましょう。