접근 제한자에는 public, protected, internal, private가 있다. 클래스 기본형은 internal이다.
접근 제한자 | 설명 |
private | 클래스 내부에서만 접근이 가능하다. |
public | 모든 곳에서 해당 멤버로 접근이 가능하다. |
internal | 같은 어셈블리에서만 public으로 접근이 가능하다. |
protected | 클래스 외부에서 접근할 수 없으나 파생 클래스에서는 접근이 가능하다. |
protected internal | 같은 어셈블리에서만 protected으로 접근이 가능하다. |
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
// internal 클래스
class A
{
protected int x = 123;
public float val = 10;
}
class B : A
{
public void Test()
{
A a = new A();
B b = new B();
// 에러 CS1540 발생 protected
a.x = 10;
// 접근 가능
b.x = 10;
b.val = 20;
}
}
public class Test
{
static void Main()
{
A a = new A();
a.val = 20;
}
}
}
'프로그래밍 언어 > C#' 카테고리의 다른 글
C# 추상 클래스 (abstract) (0) | 2022.07.28 |
---|---|
C# 인터페이스 (interface) (0) | 2022.07.28 |
C# 힙 구조 (Heap) (0) | 2022.07.26 |
C# 구조체 (struct) 클래스 (class) 차이 (0) | 2022.07.26 |
C# 클래스 타입 업/다운 캐스팅 (Up-DownCasting) (0) | 2022.07.22 |