Ktouth Brand. on Web

け〜くんこと K.Ktouth のだらだらした日常と突発的に作るプログラムや読み物とかの雑多サイト



[2008年01月10日]

partial クラスって便利やね

2008年01月10日 19:44更新 筆者:K.Ktouth

Visual Studio 2008 Professional Edition アップグレード(AA)

Linq to SQL クラスデザイナは使い勝手の良いデザイナで、定型コードを自動挿入してくれるのでデータクラス設計にはとても良いのですが。
クラスそのものの設計にはあまり細かい初期設定が出来ないんです。
デザイナクラスで定義されるクラスは「スーパークラス無し、INotifyPropertyChanging・INotifiPropertyChangedインターフェイス追加」という仕様になっています。
たとえば、IComparableやIClonableインターフェイスを追加したりDependancyObjectクラスを継承したい場合。
カスタム定義がわのソースファイルに追加したらOKでした。
以下の感じのコードになります。

  • Foo.designer.cs

    partial class Foo : INotifyPropertyChanging, INotifyPropertyChanged
    {
     ...
    }

  • Foo.cs

    partial class Foo : DependancyObject, IComparable, IComparable<Foo>
    {
     ...
    }

要はpartialでクラス定義を分割しても、矛盾しなければ複数の箇所でクラスの定義を追加可能のよーです。
Ruby に慣れていたせいか、C# の partial クラスの設計の機能に気づいてなかったです(笑)

あと、overrideのようにpartial定義されたメソッドもIDEのコード補完の候補として出てきます。実に便利。

本日のリンク元
アンテナ
その他のリンク元
検索