C# サンプルプログラム

目次

キーワード

音声信号処理ライブラリ

Wave の読み書き、音声フィルタ、周波数解析などの機能を持つライブラリです。

主要な名前空間・クラスの紹介

音声信号処理ライブラリ ソースファイル(zip形式書庫)

XSL 変換一斉適用

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

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

オセロ

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

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

複素数クラス

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

また、これらのクラスを 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形式書庫)