C# - 概要・Mono について

 クラウディア
1. 概要
2. Mono について
3. __LINE__ や __FILE__ プリプロセッサマクロに相当するもの

1. 概要

 ううむ、C言語についてきちんと書く前に、C# の覚書を書かなければならないことになるとは・・・。  いくら「偉大なるマイクロソフト様」とはいえ、うらむぞよ。  ・・・この稿、書きかけにつき、実装試験後に続きを書きます。?書くのかしら

2. Mono について

 ずいぶん以前から、「FreeBSD」でも「C#」が使用できるらしいことは知っていたのですが・・・。  「Windows」で「C#」を使ってみて、結構よくできた言語であるなぁと感心。  で、改めて、「FreeBSD」にインストールする際に「Mono」の存在を意識して知るようになりました。  言語開発のいきさつ等については「ウィキペディア - Mono」をご参照ください。

3. __LINE__ や __FILE__ プリプロセッサマクロに相当するもの

 C言語では、ずいぶん飯を食わせてもらったが。  「偉大なるマイクロソフト様」が「.Net Framework」なるものを出して。  「Win32API」は、もう使わない方向で・・・。などと客先がおっしゃるもので・・・。実際のところこれからどうなるんだろうという議論はおいといてとりあえず、ある程度は使いこなさなければならないので・・・。  C言語では、「__LINE__」や「__FILE__」、「__FUNCTION__」と言ったプリプロセッサマクロを使うことで、デバッグ用のログに事象が発生したときのソースファイル名・関数名・ステップ数を記録することができるのですが、そもそも「C#」にはそういったプリプロセッサマクロは存在しないわけです。  では、どうするのか・・・。  「現在のスレッドのコール スタック上での関数呼び出しを表す、StackFrame に関する情報を提供する」という(なんのこっちゃ?)「System.Diagnostics.StackFrame」なるものを使うんですな・・・。  しかし、これ、「.NET Framework 4.5」以降ならば、自由に使えますが。  「.NET Framework 4.5」までは、デバッグビルドして、ロードモジュールのあるディレクトリに「.pdb」というファイルがないと自由に使えないという困ったものなのです。  このあたり、書く機会があれば、もう少し詳しく、別のページに書きたいと思います。