C# の "Friend" キーワードと同等
C では、"friend" キーワードを使用して、プライベート メンバーにアクセスを許可できます。クラスから他のクラスへ。ただし、この機能は C# では直接サポートされていません。代わりに、InternalsVisibleTo 属性は、アセンブリ間でプライベート メンバーにアクセスするための部分的な同等の機能を提供します。
InternalsVisibleTo の使用方法
別のアセンブリのクラスがプライベート メンバーにアクセスできるようにするには、次のようにします。 InternalsVisibleTo 属性をアセンブリ マニフェストに追加できます。たとえば、AssemblyInfo.cs ファイルでは、次のコードを使用できます:
[assembly: InternalsVisibleTo("OtherAssembly")]
この属性により、アセンブリの内部が「OtherAssembly」という名前のアセンブリから見えるようになります。
例
次のことを考えてみましょうclass:
internal class TestClass { private int privateValue; }
別のアセンブリで、privateValue:
public class TesterClass { public void DoSomething(TestClass instance) { // Set the value using reflection instance.GetType().GetField("privateValue", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(instance, 10); } }
にアクセスするクラスを作成できます。リフレクションと InternalsVisibleTo 属性を使用すると、アセンブリ全体でプライベート メンバーにアクセスできますテストなどの特定のシナリオ用。
以上がC# で C の 'Friend' キーワードと同等の機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。