ホームページ >バックエンド開発 >C++ >C# で C の 'Friend' キーワードと同等の機能を実現するにはどうすればよいですか?

C# で C の 'Friend' キーワードと同等の機能を実現するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-31 21:59:11340ブラウズ

How Can I Achieve C# Equivalence to C  's

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。