1. 접근 한정자 (Access Modifiers)
C#의 접근 한정자는 클래스, 메소드, 변수 등의 멤버에 대한 접근 범위를 지정합니다.
a. public
- 정의:
멤버가 동일한 어셈블리의 모든 코드와 다른 어셈블리를 참조하는 코드에서도 접근 가능. - 예시:
public class Example
{
public int Value = 10;
public void Display()
{
Console.WriteLine($"Value: {Value}");
}
}
b. private
- 정의:
멤버가 선언된 클래스 또는 구조체 내부에서만 접근 가능. - 예시:
class Example
{
private int Value = 10;
private void Display()
{
Console.WriteLine($"Value: {Value}");
}
}
c. protected
- 정의:
멤버가 같은 클래스 및 파생된 클래스에서만 접근 가능. - 예시:
class Base
{
protected int Value = 10;
}
class Derived : Base
{
public void ShowValue()
{
Console.WriteLine($"Value: {Value}");
}
}
d. internal
- 정의:
멤버가 동일한 어셈블리 내에서 접근 가능하며, 다른 어셈블리에서는 불가능. - 예시:
internal class Example
{
internal int Value = 10;
}
e. protected internal
- 정의:
멤버가 선언된 어셈블리의 모든 코드와 다른 어셈블리의 파생 클래스에서 접근 가능. - 예시:
public class Base
{
protected internal int Value = 10;
}
f. private internal
- 정의:
멤버가 선언된 어셈블리 내부의 코드 및 해당 클래스에서 파생된 클래스 내에서만 접근 가능. - 예시:
class Example
{
private protected int Value = 10;
}
2. 메소드 반환 형식
a. int 반환 형식
- 반환값이 int 타입이어야 함.
- 예시:
public int Add(int a, int b)
{
return a + b;
}
b. string 반환 형식
- 반환값이 string 타입이어야 함.
- 예시:
public string Greet(string name)
{
return $"Hello, {name}!";
}
c. void 반환 형식
- 반환값이 없음을 의미.
- 예시:
public void PrintMessage(string message)
{
Console.WriteLine(message);
}
3. 예제 코드: 다양한 접근 한정자와 반환 형식
public class Example
{
// public 멤버
public int PublicValue = 10;
// private 멤버
private int PrivateValue = 20;
// protected 멤버
protected int ProtectedValue = 30;
// internal 멤버
internal int InternalValue = 40;
// protected internal 멤버
protected internal int ProtectedInternalValue = 50;
// private protected 멤버
private protected int PrivateProtectedValue = 60;
// 메소드 반환 형식 예제
public int Add(int a, int b) => a + b;
public string Greet(string name) => $"Hello, {name}!";
public void PrintMessage(string message) => Console.WriteLine(message);
}
정리
- 접근 한정자:
- public: 모든 코드에서 접근 가능.
- private: 동일 클래스 내에서만 접근 가능.
- protected: 동일 클래스 및 파생 클래스에서 접근 가능.
- internal: 동일 어셈블리에서만 접근 가능.
- protected internal: 어셈블리 내 모든 코드와 다른 어셈블리의 파생 클래스에서 접근 가능.
- private internal: 어셈블리 및 파생 클래스에서만 접근 가능.
- 메소드 반환 형식:
- int, string 등의 반환값 타입에 맞는 값을 반환해야 하며, void는 반환값이 없음.
'프로그래밍 언어 및 개발 도구 > c#' 카테고리의 다른 글
데이터 형식 변환: 정수, 부동소수점, 문자와 숫자의 변환 이해하기 (0) | 2024.12.14 |
---|---|
메소드 완벽 가이드: 선언부터 오버로딩, 로컬 함수까지 (0) | 2024.12.13 |
클래스: 객체 지향 프로그래밍의 핵심 (0) | 2024.12.13 |
객체와 다형성: 클래스, 구조체, 확장 메소드, 튜플까지 (2) | 2024.12.13 |
분기문, 반복문, 점프문 완벽 정리 (0) | 2024.12.13 |