UML最終的な実装言語がC#で、設計を検討する場合、設計資料の作成にUMLを使うと表現が少々難しい事あります。Javaのコンテキストには無いC#固有の文を扱う時にどうやって書けばいいのかわからない構文がいくつかあるので表現方法をどうするか考えてみました。プロパティ構文setter/getter両方ともアクセス修飾子が同じ場合は簡単です。}こんな風に表現したいなら以下のように<>ステレオタイプで指示すれば大体意味が通じます。setter/getterでアクセスレベルが異なる場合、どうしようも無いのでオレオレ制約を記載します。間違ってもJava風にsetter/getterを記述すると、作業者が自分じゃない限り100%そのまま実装されてしまいます。プロパティ構文を期待しているのにこんな風にUMLを書いておくと以下のコードになって成果物に反映されます。見ないでもc#の標準のコーディング規約でないメソッド名だしワケワカメになったりします。}デリゲートc#はデリゲートがインターフェースのメンバーでもなんでもなく、普通に型として使えるので他人に資料ベースで指示を出すときに少し困ります。関数ポインタにも全く同じことが言えると思います。(中略)}重要なのは結局、「型」なので、デリゲート宣言自体をクラスで扱うのがいいと思います。普通に宣言すると、只のクラスになってしまうのでステレオタイプでこれはデリゲートですよーと識別してもらいます。イベントイベントとかもUMLで記述方法が不明です。間違ってもJava風にインターフェースを継承したオブザーバーみたいな形式で記述するのだけは間違いです。最終的な実装がUMLの通りに実装される可能性が高いので、c#固有の文でそれっぽく書く必要があります。これも、イベントもデリゲートと同じくステレオタイプで指示します。Elapsed;まとめ普通に開発するときに実装に近いUMLなんて書くほうが無駄だと思いますが、自動コード生成だとかプロセスで決まっているときには少し困るで書いてみました。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Core3.xとUnityでAES暗号化を利用するC#の標準機能でデータを圧縮・展開するC#で属性を利用して処理に制約の説明を追加するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。