Internal access modifier
Peponi │ 12/2/2024 │ 2m
C#
SyntaxKeywordModifier
Internal access modifier
12/2/2024
2m
Peponi
C#
SyntaxKeywordModifier
1. Introduction
internal
키워드는 형식 및 멤버에 대한 액세스 한정자이다. internal
로 선언하면 해당 어셈블리 내에서만 public
과 같이 접근할 수 있으며 주로 모듈 단위 프로젝트에서 내부 구성요소에 사용한다.
2. Example
2.1. Type
namespace Assembly1
{
internal class BaseClass
{
internal string A = "internal";
}
internal class DerivedA : BaseClass
{
public DerivedA()
{
A = "DerivedA"; // OK
}
}
internal class OtherClass
{
public BaseClass Base = new BaseClass();
private static void Main(string[] args)
{
Base.A = "OtherClass"; // OK
}
}
}
namespace Assembly2
{
internal class DerivedB : BaseClass // CS0122 : 상속 불가
{
}
internal class OtherClass
{
public BaseClass Base = new BaseClass(); // CS0122
}
}
2.2. Member
namespace Assembly1
{
public class BaseClass
{
internal string A = "internal";
}
internal class DerivedA : BaseClass
{
public DerivedA()
{
A = "DerivedA"; // OK
}
}
internal class OtherClass
{
public BaseClass Base = new BaseClass();
public OtherClass()
{
Base.A = "OtherClass"; // OK
}
}
}
namespace Assembly2
{
internal class DerivedB : BaseClass
{
public DerivedB()
{
A = "DerivedB"; // CS0122
}
}
internal class OtherClass
{
public BaseClass Base = new BaseClass();
public OtherClass()
{
Base.A = "OtherClass"; // CS0122
}
}
}