目次

ライセンスに関して

置いてあるサンプルは MIT/X ライセンスに準拠ということでお願いします。

他のページのサンプル

サイト内の他のページにもいくつか C# サンプルプログラムがあります。

XSL 変換一斉適用

フォルダ中にある XML ファイルに一斉に XSL 変換をかけます。

ソースファイル(zip形式書庫)

オセロ

名前の通り、オセロです。 今のところローカルコンピュータ上での人対人のみで、ネットワーク対戦やコンピュータ戦は出来ません。

ソースファイル(zip形式書庫)

複素数クラス

複素数をクラス化してみました。 実用品ではなくて、実装の隠蔽・抽象基底クラスからの継承のサンプルとして作りました。 以下のような2つの方法で実装しています。

  • 実部・虚部をメンバーとして持つ複素数クラスCartesianComplex

  • 絶対値・偏角をメンバーとして持つ複素数クラスPolarComplex

また、これらのクラスを Complex という抽象基底クラスから派生させています。

ソースファイル(zip形式書庫)

ラインアート

僕はGUI開発環境の提供されているプログラミング言語を新しく覚えるたびに ラインアートを作っています。 ほとんど同じプログラムを作ることでその言語の善し悪しを見比べているのですが、 今まで作った中でC#はもっとも作成が容易でした。

作るの楽だし、ちょっと凝ったものを作ってみようということで、 右クリックメニューで設定画面開けるようにしたり、 設定(線の本数、頂点の数、画面サイズ等)を XML で保存して、 次回起動時に設定を読み出すようにしてみました。

ソースファイル(zip形式書庫)

ビットフィールド

研究室の課題で Verilog HDL でソース書いてたんですが、 途中で、エラーチェック甘いし動作の重たいシミュレーションツールにぶち切れて、 ソフトウェアでアルゴリズムのチェックをしてから HDL 記述を書くことにしました。 その際に作ったのが、Verilog の変数みたいなビット操作を行うことの出来るビットフィールドクラスです。

このビットフィールドクラスの例を以下にあげます。

Verilog風記述 BitFieldクラス
wire [31:0]w; BitField w = BitField.Create(31, 0);
assign w = x[4:0]; w.Assign(x[4, 0]);
assign w = {x, y, z}; w.Assign(BitField.Concat(x, y, z));
assign w = {w[0], w[31:1]}; w.Assign(BitField.Concat(w[0], w[31, 1]));
assign w[0] = x[0] & y[0]; w[0] = x[0] & y[0];
assign w[4:0] = x[4:0] & y[4:0]; w[4, 0].Assign(x[4, 0] & y[4, 0])

ソースファイル(zip形式書庫)

WCF デモ

更新履歴

ブログ