2016-05-23 18 views
0

次のクラス宣言は何を意味しますか?私は別のアセンブリ内の別のクラスでそれらの両方にアクセスすることができる午前C#の内部クラスとパブリッククラスの違いは何ですか?

internal class A { } 

public class B { } 

アセンブリ持つクラスAとBの参照を使用して、クラスの面で内部およびパブリックアクセス指定子の違いは何ですか?

+0

別のアセンブリからクラスAにアクセスできません。 – Blorgbeard

+1

@Blorgbeard彼が 'InternalsVisibleToAttribute'を使用していない限り、 – Lukazoid

+1

はい、あなたは*彼が質問で言及したと思うでしょう - それはあなたが間違って行うことではありません。 – Blorgbeard

答えて

3

内部は、それが常駐アセンブリ内でのみ使用可能です。公開は、それが常駐1を参照するすべてのアセンブリに提供されています

あなたが別のアセンブリから内部クラスにアクセスできる場合は、持っているのどちらか」 InternalsVisibleTo "が設定されているか、自分が思っているクラスを参照していません。

+0

InternalsVisibleToを変更するには? –

+0

@AdityaShukla - あなたの 'AssemblyInfo.cs'ファイルでは' AssemblyB'が内部クラス、メソッドなどを利用できるように '[assembly:InternalsVisibleTo(" AssemblyB ")]'を入れることができます。これは、通常、テスト目的で使用されます。 – Logarr

0

internalは、同じアセンブリ内にある他のクラスからのみアクセス可能であることを意味します。パブリックは、他のすべてのクラスで使用できることを意味します。

関連する問題