回答:
internalはアセンブリスコープ用です(つまり、同じ.exeまたは.dllのコードからのみアクセスできます)
privateはクラススコープ用です(つまり、同じクラスのコードからのみアクセスできます)。
以下の説明をご覧ください。詳細については、このリンクを確認でき ます-http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
プライベート: -プライベートメンバーは、自身のタイプ(所有クラス)内でのみアクセスできます。
内部: -内部メンバーは、継承(その派生型)またはクラスのインスタンスによってのみアセンブリ内でアクセスできます。
参照 :
Protected Internal
よりも広いアクセスを提供する興味深いものProtected
。
protected internal
としてprotected OR internal
。
With Type
意味ですか?
AND
その行列がtrue | false | false | false になると想定しましたprotected internal
。直感的ではありません。代わりに、true | true | true | falseのようになりOR'd
ます。
private protected
はあまり直観的ではありません。詳しくは:docs.microsoft.com/en-us/dotnet/csharp/language-reference/...
internal
メンバーは、それらが宣言されているアセンブリ内のすべてのコードから見ることができます
(また、[InternalsVisibleTo]
属性を使用して参照される他のアセンブリからも見えます)。
private
メンバーは、宣言するクラスにのみ表示されます。(ネストされたクラスを含む)
外部(ネストされていない)クラスを宣言することはできませんprivate
。プライベートにするスコープが含まれていないためです。
尋ねるのを忘れた質問に答えるために、protected
メンバーはprivate
メンバーのようですが、宣言型を継承するすべてのクラスでも表示されます。(ただし、少なくとも現在のクラスのタイプの式についてのみ)
プライベートメンバーは、クラスの本体またはそれらが宣言されている構造体内でのみアクセスできます。
内部タイプまたはメンバーには、同じアセンブリ内のファイル内でのみアクセスできます
内部メンバーはアセンブリ内でアクセス可能(同じプロジェクトでのみアクセス可能)
プライベートメンバーは同じクラス内でアクセス可能
ソリューションには2つのプロジェクト(Project1、Project2)があり、Project1はProject2への参照を持っています。