可能性の重複:以下に述べるよう
What is the difference between 'protected' and 'protected internal'?
What is the difference between Public, Private, Protected, and Nothing?混乱:内部、保護および保護された内部
コードは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testanotherlib
{
public class A
{
internal void InternalDisplay()
{
Console.WriteLine("Internal Display Method.");
}
protected void ProtectedDisplay()
{
Console.WriteLine("Protected Display Method.");
}
protected internal void ProtectedInternalDisplay()
{
Console.WriteLine("ProtectedInternal Display Method.");
}
public void PublicDisplay()
{
Console.WriteLine("Public Display Method.");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testanotherlib
{
public class B : A
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using testanotherlib;
namespace testlib
{
public class C:A
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using testlib;
using testanotherlib;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
B objB = new B();
C objC = new C();
}
}
}
私は理解しようとしていますInの差保護され、保護された内部。そのために、上記のコードを使用した例を作成しました。
クラスライブラリプロジェクトtestanotherlibに私はクラスA &クラスBを持っています。クラスライブラリプロジェクトtestlibに私はクラスCを持っています。プログラムクラスは別のコンソールアプリケーションにあります。プログラムクラスのメインメソッドの中で私はクラスB(objB)とクラスC(objC)のオブジェクトを作成しました。 objBおよびobjCでは、クラスAのパブリックメソッドにのみアクセスできます。私はクラスBのすべてのメソッドにアクセス可能になると期待されていた。親切に私がこれを理解するのを手伝ってください。プロジェクトに関する他の情報が必要な場合は、私に相談してください。
よろしく、 Priyank
?あなたのコードはメンバーを使用することは決してありません。そのため、話しが難しくなります。 –
@JonSkeet:クラスobjBを持つクラスAならすべてのメソッドにアクセスできることを期待していました。 –
@PriyankThakkar: 'testApp'から? *なぜ*あなたはそれを期待していましたか? 'testApp'のコードは' A'と同じアセンブリにはないので、内部のメンバは見えません。 –