2

私は2つのフォームと1つのクラスを持っています。クラスを静的クラスにしました。パブリック修飾子を使用した2つのメソッドがあります。例:パブリック文字列PrintHello()、パブリックvoid Task1()

これらのメソッドにForm1とForm2の両方からアクセスできるようにしたい。「Public」修飾子を使用するのは良くないことを理解しているので、「Internal」修飾子を調べましたが、それでうまくいくようです。

基本的に、クラスにアクセスするための安全な方法を作成したいと思います。そうするための最良の方法は何でしょうか、そしてその方法の例を提供できますか?

ありがとうございました

4

2 に答える 2

0

アクセス修飾子はコードにセキュリティを提供しません。ILDASM を使用してコードを逆コンパイルし、それらを使用できる privet メソッドを誰かが本当に使用したい場合は、多くの例の 1 つにすぎません。

アクセス修飾子は、オブジェクト指向コード設計を使用してプログラミングできるようにするためにあります。一般に、プライベート修飾子はクラス実装の内部にあり、コードの他のクラスまたはレイヤーはその存在を知る必要はなく、知りたくもありません。

内部修飾子は、アセンブリ全体に必要な追加機能を提供するためにありますが、実装固有であるため、(アセンブリの外部の) 他の機能には必要ありません。

最後に、Public 修飾子は、クラスと外界とのインターフェイスを定義するために使用されます。これらは、コードから何らかの機能を必要とするすべての人が使用する必要があり、使用されるメソッドとプロパティです。

于 2012-11-12T03:58:41.123 に答える
0

このメソッドを呼び出すコードがどこにあると思われるかによって異なります。このメソッドを定義したクラスからのみ呼び出される場合は、プライベートにする必要があります。同じアセンブリ (dll) からのみ呼び出したいが、他の dll からメソッドを呼び出したくない場合は、内部にする必要があります。このようにして、dll を他のプロジェクトに配布することができ、メソッドのサポートについて心配する必要がなくなります (メソッドにアクセスできないため)。

ただし、汎用ライブラリ/dll などを実行している場合は、メソッドを公開する必要があります。

それはすべて、誰が、または何があなたのメソッドを呼び出すと思うかによって異なります。

于 2012-11-12T03:56:18.253 に答える