C のフレンドと C# の不在
C では、「friend」キーワードにより、クラスのプライベート メンバーへのアクセスが外部に許可されます。クラス。これにより、カプセル化を損なうことなく、個人情報の制御された共有が可能になります。ただし、この概念は C# では直接実装されていません。
ギャップのブリッジ: InternalsVisibleTo
C# では、"friend" に最も近いものとして InternalsVisibleTo という属性が提供されています。これにより、アセンブリが別のアセンブリの内部メンバー (プライベート メンバーを含む) にアクセスできるようになります。これにより、制限された形式のアクセス制御が提供されます。
次のシナリオを考えてみましょう:
これを実現するには、次の属性をClassA の AssemblyInfo.cs ファイル:
[assembly: InternalsVisibleTo("TesterAssembly")]
「TesterAssembly」を Tester クラスを含むアセンブリの名前に置き換えます。これにより、TesterAssembly に ClassA の内部メンバーへのアクセス権が付与されます。
使用例
これがどのように機能するかを説明するために、次の簡単なコードを示します。例:
ClassA.cs
public class ClassA { private int _privateMember; public int PublicMember { get; set; } }
Tester.cs
using ClassAAssembly; public class Tester { public void Test() { // Access private member through InternalsVisibleTo var instance = new ClassA(); instance._privateMember = 10; } }
InternalsVisibleTo 属性を適用すると、内部メンバー (プライベート メンバーも含む) のアクセシビリティをアセンブリ レベルで制御できるため、マネージド コードのテストが可能になります。機密データを外部消費者に公開する。
以上がC# は、プライベート メンバーへのアクセスを制御するための C の 'friend' キーワードの機能をどのように実現しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。