공부/C#

(2) C# 기초 문법 - namespace, 클래스, 구조체, static, 접근 제한자 등

샤샤샤샤 2024. 10. 16. 21:19

1. namespace
자바의 패키지와 대응되는 개념.
namespace 이름 {}  형식으로 선언하며, 네임스페이스만 다르면 같은 이름의 클래스를 선언해도 충돌이 일어나지 않는다. 
using 지시문을 통해 외부 네임스페이스의 코드를 불러올수 있다.

 

2. 클래스
class 이름 {} 형식으로 선언한다. 

 

3. 구조체
데이터를 하나의 이름으로 묶어 관리하는 역할을 한다. 힙이 아닌 스택 영역에 저장된다.
struct 이름 {} 형식으로 선언한다.

 

4. 접근 제한자
class, 변수, 인터페이스 등에 붙일수 있다.
private: 같은 클래스 내부에서만 사용 가능.
protected : 같은 클래스 내부, 또는 상속받는 자식 클래스 내부에서만 사용 가능.
protected internal : 같은 어셉블리(dll 파일) 내부에서만 접근 가능. 다른 어셈블리에서도 해당 클래스를 상속받은 파생 클래스에서는 접근이 가능합니다.
internal : 현재 프로젝트의 모든 클래스에서 접근 가능.
public : 모든 곳에서 접근 가능. 제한 없음.

 


5. static 예약어
자바처럼 정적 메서드를 만드는 기능 이외에도 몇가지 추가 기능이 존재한다. 
    1. 정적 생성자 : static 이 붙은 생성자 함수. 해당 클래스의 정적 함수가 호출될때 같이 호출된다.
    2. 불변 클래스(정적 클래스) : static이 붙은 클래스. 인스턴스화 될수 없으며 static 필드만 가짐.