ホームページ > バックエンド開発 > C++ > C# は、プライベート メンバーへのアクセスを制御するための C の 'Friend' キーワードと同様の機能をどのように実現しますか?

C# は、プライベート メンバーへのアクセスを制御するための C の 'Friend' キーワードと同様の機能をどのように実現しますか?

Susan Sarandon
リリース: 2024-12-28 18:46:10
オリジナル
935 人が閲覧しました

How Does C# Achieve Functionality Similar to C  's

C# の Friend キーワード

オブジェクト指向プログラミングでは、「friend」キーワードにより、プライベート クラス メンバーに特定のクラスへの制御されたアクセスが提供されます。 C には "friend" キーワードが用意されていますが、C# にはこの機能に直接相当する機能がありません。

代替: InternalsVisibleTo

C# は InternalsVisibleTo 属性を利用して、プライベートへの限定的なアクセスを実現します。主にテスト目的のメンバー。この属性は、アセンブリまたは名前空間を信頼できるものとして指定し、外部コードからは隠されている内部メンバーにアクセスできるようにします。

AssemblyInfo.cs の次の例を考えてみましょう。 :

[assembly: InternalsVisibleTo("OtherAssembly")]
ログイン後にコピー

この属性により、アセンブリが「OtherAssembly」にアクセスできるようになります。アセンブリ内で内部としてマークされたメソッドまたはプロパティは、「OtherAssembly」からアクセスできるようになります。

テストでの使用法

InternalsVisibleTo 属性は、単体テストで特に役立ちます。シナリオ。アセンブリをテスト アセンブリに対して InternalsVisibleTo としてマークすると、プライベート メンバーは他の外部コードからは隠されたまま、テスト目的でアクセスできるようになります。

考慮事項

InternalsVisibleTo はメカニズムを提供しますが、制御されたアクセスの場合、C の "friend" キーワードとはいくつかの点で異なります。

  • 明示的な必要があります。 AssemblyInfo.cs の宣言。
  • これは、個々のクラスではなくアセンブリに適用されます。
  • すべてのプライベート メンバーへのアクセスが有効になるわけではありません。内部メンバーのみにアクセスを許可します。

以上がC# は、プライベート メンバーへのアクセスを制御するための C の 'Friend' キーワードと同様の機能をどのように実現しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート