ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1068) N
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (181) N
      • Unreal (69)
      • Unity (101) N
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (346)
      • C++ (167)
      • C# (88)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • SQL
  • 오블완
  • 파이썬
  • 클래스
  • 알고리즘
  • 언리얼
  • Unity
  • 백준
  • 그래픽스
  • 함수
  • 배열
  • c#
  • 프로그래머스
  • string
  • 유니티
  • C++
  • 문자열
  • 티스토리챌린지
  • 포인터
  • C

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

프로그래밍 언어/C#

C# 클래스 접근 제한자 (Access Modifier)

2022. 7. 27. 12:48

접근 제한자에는 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
    '프로그래밍 언어/C#' 카테고리의 다른 글
    • C# 추상 클래스 (abstract)
    • C# 인터페이스 (interface)
    • C# 힙 구조 (Heap)
    • C# 구조체 (struct) 클래스 (class) 차이
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바