DOBON.NET DOBON.NETプログラミング掲示板過去ログ

クラスのプロパティを隠す

環境/言語:[WinXP(SP2)、VisualBasic.NET 2003]
分類:[.NET]

お世話になっております。

今回、自作クラスの公開メンバとしてプロパティがいくつかあるのですが、
そのうちひとつをコード補完等に表示されないようにしたいと思っています。

というのも、そのプロパティは
「基本的な使い方では使用されない・あるいは下手に使うとおかしくなる可能性がある。
 が、必要なときは必要になるもの」
なので、Privateにすると使うことすらできなくなるので、
「記述すれば使えるけどコード補完等で簡単に出せたり探せたりできない」ようにしたいと思っています。

よろしくお願いします。
EditorBrowsableAttributeやBrowsableAttributeを使いましょう
返信ありがとうございます。

■No20797に返信(れいさんの記事)
> EditorBrowsableAttributeやBrowsableAttributeを使いましょう

上記語句を調べ、MSDNのサンプルを元に作ってみました。

Public Class Class1
    <EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)> _
    Public Property TEST() As String
        Get
            Return "テスト"
        End Get
        Set(ByVal Value As String)
            MsgBox(Value)
        End Set
    End Property
End Class

すると「型 'EditorBrowsable' が定義されていません」となり
NGでした…いろいろ調べていると、ユーザコントロール作成に関するページが
やたらとヒットするため、もしかしてユーザコントロールでしか使えない
のではないでしょうか?

よろしくお願いします。
■No20799に返信(鶏唐揚さんの記事)
> すると「型 'EditorBrowsable' が定義されていません」となり
> NGでした…いろいろ調べていると、ユーザコントロール作成に関するページが
> やたらとヒットするため、もしかしてユーザコントロールでしか使えない
> のではないでしょうか?

そうではありません。
単に EditorBrowsable 属性の名前空間が足らないからです。
どの名前空間に所属しているか調べれば自己解決できるでしょう。

Imports するかあるいは完全修飾名でコーディングすればおkです。
返信ありがとうございます。

■No20800に返信(じゃんぬねっとさんの記事)
> ■No20799に返信(鶏唐揚さんの記事)
>>すると「型 'EditorBrowsable' が定義されていません」となり
>>NGでした…いろいろ調べていると、ユーザコントロール作成に関するページが
>>やたらとヒットするため、もしかしてユーザコントロールでしか使えない
>>のではないでしょうか?
>
> そうではありません。
> 単に EditorBrowsable 属性の名前空間が足らないからです。
> どの名前空間に所属しているか調べれば自己解決できるでしょう。
>
> Imports するかあるいは完全修飾名でコーディングすればおkです。

そうでした、いつもの癖(VB6)ですっかり失念しておりました。
どのページのサンプルもいきなりEditorBrowsableから書き出しているため
そういうものだと思い込んでしまっていました。

名前空間を明示的に指定してやることで実現できました。
無事解決とさせていただきます、お二方の親切な回答に感謝いたします。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板