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는 반환값이 없음.

+ Recent posts