C# はじめの一歩
Windows には C# のコンパイラが標準で付属しています
Windows には .NET のランタイムと C# のコンパイラが標準で入っています。 C# をちょっと眺めるだけなら Visual Studio などの巨大な開発ツールは不要です。 テキストエディタだけあれば、すぐに C# のプログラムを書いて動かすことができます。
C# のコンパイラ (csc.exe) を使う準備をする
JavaScript のような言語では HTML と JavaScript を書いて Web ブラウザに表示すればすぐに実行できますが、 C# のプログラムでは コンパイラ と呼ばれるツールを使って実行ファイルを作り、 このファイルを実行します。
C# では、プログラムのテキストファイル (拡張子が cs のファイル) をコンパイラ ( ファイル名は csc.exe ) を使って exe 形式 の実行ファイルに変換します。 exe ファイルは Windows のアプリケーションで普通に使われるアプリケーション本体のファイルです。
(補足) Windows のエクスプローラはデフォルトではファイルの拡張子を 表示していないかも?。 エクスプローラで拡張子を表示する方法は・・・最寄のサイトで 調べて下さい・・・
csc.exe のあるフォルダを確認する
csc.exe はフォルダ C:\Windows\Microsoft.NET\Framework64 以下のサブフォルダにあります。 Windows のバージョンによってフォルダ名のバージョン番号が変わることがあるので、 csc.exe のある場所を確認してください。
csc.exe へのパスを通す
csc.exe をプロンプトで簡単に実行できようにパスを設定します。 プロンプトを開いたときに下のコマンドを入力します。
path=%path%;C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319
パスの設定のことを「パスを通す」と呼ぶこともあります。
パスを通すとプロンプトで csc と入力するだけで
コンパイラ csc.exe が実行できるようになります。
パスの設定はプロンプトを開いたときに最初に 1回だけ実行します。
プロンプト:アプリケーションを起動する・その2
csc と入力してエンターキーを押すと下の絵のようなメッセージが出てきます。
csc を実行して「ファイルとして認識されていません。」 のエラーメッセージが出る場合は path 設定のフォルダ名の記述が誤っているので、 正しいフォルダ名を書いてください。
以上でコンパイラ csc.exe を使う準備はできました。 次に簡単な C# のプログラムを書いて実行してみます。
はじめの一歩のプログラム
プロンプトに文字列を出力するサンプル
プロンプト (コンソール) 用のプログラムのコンパイルと実行のサンプルです。 下のソースをファイル Hello.cs で保存し、コンパイルして実行します。
//プログラムソース。ファイル名 Hello.cs using System; class Test { static void Main() { Console.WriteLine("こんにちは、Hello World C#"); } }
コンパイル方法はプロンプトで下のコマンドを入力します。
csc Hello.cs
コンパイルに成功すると実行ファイル Hello.exe が作成されます。 Hello と入力すると Hello.exe が実行されます。
Hello
/debug+ オプション
コンパイルのときに csc Hello.cs だけでコンパイルすると エラーが起きたときのソースの行位置など詳しい情報が分かりません。 これらも知りたい場合は、コンパイルのときに /debug+ オプションを付けます。
デバッグ用にコンパイルする。 csc /debug+ Hello.cs
/debug+ を付けてコンパイルすると、(ファイル名).pdb のファイルも作成されます。 このファイルがデバッグに必要な情報を持っています。
ウインドを表示するプログラム
ウインドを表示するサンプルです。 こちらは System.Windows.Forms の GUI 部品を使用しています。 昔の Windows の GUI で現在の WPF の部品を使ったプログラムではありません。
/* ウインドを表示する コンパイル : csc /debug+ HelloForm.cs 実行 : HelloForm */ using System; using System.Drawing; using System.Windows.Forms; public class Test : Form { [STAThread] //おまじない。付けておく static void Main(){ //ビジュアルのおまじない。これがないとボタンなどのデザインが変わる。 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //ウインドを表示する Application.Run( new Test()); } //コンストラクタ public Test(){ ClientSize = new Size(300, 300); //ウインドのサイズ Text = "Hello World"; //ウインドのタイトルバーに表示される文字列 //ボタン Button b = new Button(); b.Location = new Point(100, 50); b.Text = "押すべし"; b.Click += button_Click; //ボタンが押されたときの処理を登録する //ボタンをウインドに付ける。 Controls.AddRange(new Control[] { b }); } //ボタンが押されたときの処理 void button_Click(object sender, System.EventArgs e) { MessageBox.Show("ようこそ。", "見出し"); } }
HelloForm.exe をエクスプローラなどからダブルクリックで実行すると プロンプトのウインドも表示されます。 これをなくしたい場合はコンパイルのときに /t:winexe のオプションを付けます。
プログラム実行のときにプロンプトを出さないようにするコンパイル。 csc /t:winexe HelloForm.cs
WPF のウインドのプログラム
WPF (Windows Presentation Foundation) は .NET3.5以降の GUI です。 System.Windows.Controls の部品を使います。 こちらは前置き話がたくさんあるので省略。 ちょっとしたツールなら上の System.Windows.Forms でも間に合います。
資料
- System.Windows.Forms 名前空間 - 昔の Windows の GUI 部品。
- System.Windows.Controls 名前空間 - WPF の GUI 部品。
csc.exe のオプション
- /debug オプション
プログラムをデバッグするときに指定します。 このオプションを付けるとエラーが発生したときの詳細や ソースコードの行位置がプロンプトに表示されます。
Microsoft: /debug (デバッグ情報の生成) (C# コンパイラ オプション) - /t:winexe, /target:winexe オプション
GUI ウインドがあるプログラムで指定します。 このオプションを付けると プログラムを実行するときにプロンプトのウインドが表示されません。 リリース用の exe ファイルを出力するときに指定します。 プログラムをデバッグ中のときはプロンプトのウインドも表示して デバッグメッセージを確認します。
Microsoft: /target (出力ファイル形式の指定) (C# コンパイラ オプション)