#1
, b2
, #3
, ♭4
, +5
, -6
, などの音度表現に対応。ただし単音程(1〜7)まで。
成果物
CSharp.MusicTheory.Chord.Accidential.201709101700
開発環境
- Linux Mint 17.3 MATE 32bit
- MonoDevelop 4.0.12
- mono 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1.1)
前回まで
学んだこと
MONOでLinqを使う方法
- System.Core.dllの参照を追加する
using System.Linq
する
同じ文字列をくりかえす
- System.Core.dllの参照を追加する
using System.Linq;//System.Core.dll string acc_str = string.Concat(System.Linq.Enumerable.Repeat(accidental, i));
Pythonなら以下のコードでできる。
acc_str = accidental * i
実装の問題点
- 変化記号の定義クラスがあるのに、別のクラスではそれを参照せずに正規表現をつくっている
Accidental.GetPitch()
の実装がスマートでない気がするforeach(AccidentalType a in [Flat, Sharp]) { a.GetValue (accidental); }
としてもカッコ悪い- どう実装すべきかわからない
所感
ささいなことでエラーが頻発して捗らない。MonoDevelopのエラーが英語でわかりにくい。
- どのようなデータ構造にすべきか
- それはC#で実装可能か、どのように実装できるか