エディタに「.」を入力したときまたは、コントロール+スペースキーで表示される入力候補の一覧ですね。
しかし、この一覧に出したくないと思うことがあります。ライブラリーとして提供する時に、隠しておきたいメソッドがある場合などです。そういう場合、メソッド・クラス・プロパティにアトリビュートをつける事により非表示になります。EditorBrowsableAttribute クラス (System.ComponentModel)と、~ 10 行でズバリ!! - 番外編 ~ 自分流のコントールを作っちゃおう ~が参考になります。で、コードはこんな感じ
[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
public string hogehoge
{
get { return "hoge"; }
set { }
}
[EditorBrowsable(EditorBrowsableState.Never)]
public string Bar()
{
return "bar";
}
[Browsable(false)]
public string hogehoge
{
get { return "hoge"; }
set { }
}
[EditorBrowsable(EditorBrowsableState.Never)]
public string Bar()
{
return "bar";
}
しかし、C#の場合、
- 同一プロジェクト内では表示されてしまう
- 別プロジェクトでもプロジェクト参照すると表示される
なんです。つまるところ、アセンブリ参照ではないとダメということらしい。ということです。これはC#2008EEで試した結果です。
VB.NETではこのような制限はないようです。。。なぜ異なる仕様なのかは、よくわかりませんね。
0 件のコメント:
コメントを投稿