プロジェクトの参照設定
C#のプロジェクトの参照設定がよく分からない。ソリューションは以下のような状況になっている。
- プロジェクトA
- 俺ライブラリ側。プロジェクトBや他のアプリなどでも使う(かもしれない)部品群。このプロジェクトの中で、とあるインターフェースX(.NET Framework 3.0以降で提供されているきわめて標準的なもの)を実装したクラスFooを定義している。つまり、プロジェクトAはインターフェースXを含むdllを参照している。
- プロジェクトB
- アプリ側。このプロジェクト内で、プロジェクトAのクラスFooを使用している。プロジェクトBはプロジェクトAをプロジェクト参照しているが、インターフェースXを含むdllは参照していない。
この状況でビルドすると、
ってエラーが出る。なんでプロジェクトBがインターフェースXを含むdllを参照しないといけないの?プロジェクトBを参照してるからそれでいいやん。
日付や時間を表す文字列を受理するオートマトン②
以下のフォーマットを受理するDFAを作った。
Ideone.com - FxXej0 - Online C# Compiler & Debugging Tool
- yyyy/MM/dd HH:mm:ss.fff
- yyyy/MM/dd HH:mm:ss
- yyyy/MM/dd HH:mm
- yyyy/MM/dd HH
- yyyy/MM/dd
- yyyy/MM
- yy/MM/dd HH:mm:ss.fff
- yy/MM/dd HH:mm:ss
- yy/MM/dd HH:mm
- yy/MM/dd HH
- yy/MM/dd
- MM/dd HH:mm:ss.fff
- MM/dd HH:mm:ss
- MM/dd HH:mm
- MM/dd HH
- MM/dd
- HH:mm:ss.fff
- HH:mm:ss
- HH:mm
- mm:ss.fff
受理するかどうか確かめると同時に、どのパターンか判断する方法は無いかな...。
ただし、MM/ddとmm:ssは、それぞれyy/MMとHH:mmと区別できないから、yy/MMとHH:mmとして扱うことにした。