C# 메서드 매개변수 in, ref, out, param

2023. 6. 9. 11:48·C#
반응형

소개

C#에서 메서드는 다양한 매개변수를 사용하여 데이터를 전달받을 수 있습니다. 이번 글에서는 C#에서 사용되는 메서드 매개변수 중 in, ref, out, param에 대해 자세히 살펴보겠습니다.

in 매개변수

in 매개변수는 값을 읽기 전용으로 전달하는 데 사용됩니다. in 매개변수를 사용하면 메서드 내에서 해당 매개변수의 값을 변경할 수 없습니다. in 매개변수를 사용하면 데이터를 보호하고 의도하지 않은 변경을 방지할 수 있습니다.

public void Print(in int x)
{
    Console.WriteLine(x);
}

위의 예제에서 Print() 메서드는 in 매개변수를 사용하여 값을 읽기 전용으로 전달받습니다. 메서드 내에서 x 변수의 값을 변경하려고 하면 컴파일 오류가 발생합니다.

ref 매개변수

ref 매개변수는 값을 참조 전용으로 전달하는 데 사용됩니다. ref 매개변수를 사용하면 메서드 내에서 해당 매개변수의 값을 변경할 수 있습니다. ref 매개변수를 사용하면 메서드에서 값을 반환하지 않아도 값을 변경할 수 있습니다.

public void Swap(ref int x, ref int y)
{
    int temp = x;
    x = y;
    y = temp;
}

위의 예제에서 Swap() 메서드는 ref 매개변수를 사용하여 값을 참조 전용으로 전달받습니다. 메서드 내에서 x와 y 변수의 값을 변경하면 원래 변수의 값도 변경됩니다.

out 매개변수

out 매개변수는 값을 출력 전용으로 전달하는 데 사용됩니다. out 매개변수를 사용하면 메서드 내에서 해당 매개변수의 값을 반드시 초기화해야 합니다. out 매개변수는 메서드에서 값을 반환하기 전에 메서드 내에서 값을 변경할 수 있습니다.

public void Divide(int x, int y, out int quotient, out int remainder)
{
    quotient = x / y;
    remainder = x % y;
}

위의 예제에서 Divide() 메서드는 out 매개변수를 사용하여 값을 출력 전용으로 전달받습니다. 메서드 내에서 quotient와 remainder 변수의 값을 초기화한 후 메서드에서 값을 반환합니다.

param 매개변수

param 매개변수는 가변 길이 매개변수를 전달하는 데 사용됩니다. param 매개변수는 배열 형식으로 전달되며, 메서드 호출 시 전달된 값의 수에 따라 배열의 길이가 결정됩니다.

public void PrintNumbers(params int[] numbers)
{
    foreach (int number in numbers)
    {
        Console.Write(number + " ");
    }
}

위의 예제에서 PrintNumbers() 메서드는 param 매개변수를 사용하여 가변 길이 매개변수를 전달받습니다. 메서드 호출 시 전달된 값을 배열 형식으로 받아와서 출력합니다.

결론

C#에서는 다양한 메서드 매개변수를 사용하여 데이터를 전달받을 수 있습니다. in, ref, out, param 매개변수를 올바르게 사용하면 데이터를 효율적으로 전달하고 보호할 수 있습니다. 이번 글을 통해 C#에서 사용되는 메서드 매개변수에 대해 더욱 자세히 알아보았습니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

C# Boxing  (0) 2023.06.12
C# Jump 문 : break, continue, return, goto  (0) 2023.06.10
C# with 식  (1) 2023.06.08
C# ? 연산자 : Null 조건부 연산자  (0) 2023.06.02
C# 배열 인덱싱  (1) 2023.06.01
'C#' 카테고리의 다른 글
  • C# Boxing
  • C# Jump 문 : break, continue, return, goto
  • C# with 식
  • C# ? 연산자 : Null 조건부 연산자
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (5)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    리뷰이관
    Python
    rtsp
    C#
    카페24리뷰
    programmerlife
    learntocode
    카페24리뷰이관
    유니티
    스마트스토어리뷰
    cv2
    쇼핑몰리뷰
    스크립트 실행
    믈레코비타멸균우유
    programming101
    codingtips
    리뷰관리
    리스트
    셀레니움
    파이썬
    codingcommunity
    긴유통기한우유
    devlife
    라떼우유
    스크립트 실행 순서
    appdevelopment
    list
    ipcamera
    상품 리뷰 크롤링
    unity
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
C# 메서드 매개변수 in, ref, out, param
상단으로

티스토리툴바