C# 入門

スポンサーリンク

C# について

C# (シーシャープ) は,Microsoft が 2000 年に発表した,C 言語族のオブジェクト指向言語です。
.NET Framework の主力言語であり,Windows プログラミングにおいて重要な役割を果たします。

C# という名前については,C を拡張した言語である C++ をさらに改良した言語であることから,C++ にさらに ++ を付けて C# になったという話が有名です。
C/C++ と C# との間には互換性はありませんが,構文は C/C++ 経験者には馴染みやすいものとなっています。

C# の構文や実行方式は,同じく C 言語族のオブジェクト指向言語である Java の影響を強く受けています。
Java のプログラムが仮想マシン上で動くのと同様に,C# のプログラムは .NET Framework の共通言語ランタイム (CLR) 上で動きます。
また,共通言語ランタイムは Java 仮想マシンと同様にガーベジコレクションをサポートしています。

C# のソースコードをコンパイルすると,中間形式で記述された実行可能ファイルが生成されます (このあたりの仕組みも Java と同じ)。
この実行可能ファイルを実行するには,実行環境に .NET Framework がインストールされている必要があります。

Hello World

次のプログラムは,C# の Hello World プログラムです。
このソースコードを hello.cs 等の名前のファイルに保存し,コンパイルします。

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("hello, world");  // 文字列を出力
    }
}
  • 波括弧で囲まれた範囲 { ... } は,ブロック (block) と呼ばれます。
  • フリーフォーマットなので,インデントの深さに文法的な意味はありません。
  • 大文字と小文字は区別されます。
  • 実行の最小単位は文 (statement) であり,すべての文の終りにはセミコロン ; を付けます。
  • 文字列はダブルクォーテーション "..." で囲って表します。

生成された実行可能ファイルを走らせると,次のように出力されます。

hello, world

メソッド

メソッド (method) は,他の言語でいう "関数" や "サブルーチン" に相当する,処理のまとまりです。
Console.WriteLine(...) は,コンソールに文字列を出力するメソッドの呼び出しです。

Main メソッドは,プログラム実行時に呼び出される特別なメソッドです。
C/C++ の main 関数と同様に,プログラムのエントリポイントとなります。

Main メソッドを含め,すべてのメソッドは "クラス" に収めなければなりません (クラスの説明は後述します)。

名前空間

Console.WriteLine メソッドの本名は System.Console.WriteLine なのですが,using System; と書くことで System を省略しています。
この System は名前空間 (namespace) と呼ばれ,名前の衝突を防ぐ目的で使われます。

Console.WriteLine メソッドは,次のようにして System 名前空間の中に定義されています。

namespace System
{
    // この中に Console.WriteLine メソッドの定義がある
}

コメント

コメントには行コメントとブロックコメントがあります。
ドキュメント作成用のドキュメンテーションコメントも利用できます。

// 行コメント

/* ブロック
   コメント */

/// <summary> メソッドの説明 </summary>
/// <param name="a"> パラメータの説明 </param>
public void Method1(int a) { ... }
スポンサーリンク