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

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

Mary-Kate Olsen
リリース: 2024-12-31 21:59:11
オリジナル
364 人が閲覧しました

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

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