2011-12-20 2 views
0

"internal"とマークされたオブジェクトプロパティを持つクラスがあります。アクセシビリティの問題はなく、すべてのメンバーがプロジェクトにアクセスできます。しかし、これらのプロパティのいずれかをGUIコンポーネントのDisplayMemberに設定した場合、適切に動作させるには「public」とマークする必要があります。そうでなければ、リストボックスにオブジェクトのToString()を項目として表示します。それはなぜそうですか?なぜディスプレイのメンバーであればそのプロパティをパブリックにする必要があります

答えて

3

データバインディング機能が組み込まれている可能性があります。公開されているプロパティのみが反映されます。

+0

Mm、... – nawfal

-2

internalキーワードは次のように動作します。 internalキーワードの主な目的は、現在のアセンブリのすべてのクラスにアクセスさせることです。たとえば、.dllファイルがあり、そのクラスの一部が内部にマークされている場合、その.dll内のクラスのみがそのクラスにアクセスでき、他の外部アセンブリまたは外部プログラムにアクセスすることはできません。あなたがアセンブリの外でGUIを使用している場合、あなたはちょうど内部のために使用されて違反している。したがって、そのプロパティのメンバーをpublicにする必要があります。

私は学生なので、私はC#の専門家ではありませんが、データにアクセスする必要がある外部メンバーへの接続として機能する「コネクタ」クラスと、データ。

+0

アクセシビリティレベルの詳細については、https://msdn.microsoft.com/en-us/library/zd74a9ww.aspxでリサーチすることをお勧めします。これらのサンプルコードは、あなたの質問に対する答えを提供するはずです。 – TofuMars

関連する問題