gorogoronyan FC2

C# はじめの一歩

Windows には C# のコンパイラが標準で付属しています

Windows には .NET のランタイムと C# のコンパイラが標準で入っています。 C# をちょっと眺めるだけなら Visual Studio などの巨大な開発ツールは不要です。 テキストエディタだけあれば、すぐに C# のプログラムを書いて動かすことができます。

C# のアプリケーションの例
C# のアプリケーションの例
Visual Studio などのツールがなくても、テキストエディタだけあればこれぐらいは作れます。
自家製エディタ (.NET2.0)
自家製エディタ (.NET2.0)
テキストファイルのブラウザも兼ねたテキストエディタ

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 のあるフォルダ (Windows10 の場合)
csc.exe のあるフォルダ (Windows10 の場合)
上の絵の例ではフォルダ v4.0.30319 に csc.exe がある。

csc.exe へのパスを通す

csc.exe をプロンプトで簡単に実行できようにパスを設定します。 プロンプトを開いたときに下のコマンドを入力します。

path=%path%;C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319

パスの設定のことを「パスを通す」と呼ぶこともあります。 パスを通すとプロンプトで csc と入力するだけで コンパイラ csc.exe が実行できるようになります。 パスの設定はプロンプトを開いたときに最初に 1回だけ実行します。
プロンプト:アプリケーションを起動する・その2

csc と入力してエンターキーを押すと下の絵のようなメッセージが出てきます。

パスを通し、csc を実行した例 (Windows10)
パスを通し、csc を実行した例 (Windows10)

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
1) パスを通し、2) Hello.cs をコンパイルし、3) 実行した結果 (Windows10)
1) パスを通し、2) Hello.cs をコンパイルし、3) 実行した結果 (Windows10)

/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.cs のコンパイルと実行結果 (Windows10)
HelloForm.cs のコンパイルと実行結果 (Windows10)

HelloForm.exe をエクスプローラなどからダブルクリックで実行すると プロンプトのウインドも表示されます。 これをなくしたい場合はコンパイルのときに /t:winexe のオプションを付けます。

プログラム実行のときにプロンプトを出さないようにするコンパイル。
csc /t:winexe HelloForm.cs

WPF のウインドのプログラム

WPF (Windows Presentation Foundation) は .NET3.5以降の GUI です。 System.Windows.Controls の部品を使います。 こちらは前置き話がたくさんあるので省略。 ちょっとしたツールなら上の System.Windows.Forms でも間に合います。

資料

csc.exe のオプション

関連

inserted by FC2 system