C#의 함수에서 여러 값 반환

Muhammad Maisam Abbas 2024년2월16일
  1. C#의 배열을 사용하여 함수에서 여러 값 반환
  2. C#의 구조 / 클래스 개체를 사용하여 함수에서 여러 값 반환
  3. C#에서Tuples<T1,T2>클래스를 사용하여 함수에서 여러 값 반환
  4. C#에서(T1,T2)표기법을 사용하여 함수에서 여러 값 반환
C#의 함수에서 여러 값 반환

이 자습서에서는 C#의 함수에서 여러 값을 반환하는 메서드를 소개합니다.

C#의 배열을 사용하여 함수에서 여러 값 반환

배열 데이터 구조는 C#에 동일한 데이터 형식의 여러 값을 저장합니다. 배열을 사용하여 함수에서 여러 값을 반환 할 수 있습니다. 다음 코드 예제는 배열을 사용하여 C#의 함수에서 여러 값을 반환하는 방법을 보여줍니다.

using System;

namespace return_multipe_values {
  class Program {
    public static int[] compare(int a, int b) {
      int[] arr = new int[2];
      if (a > b) {
        arr[0] = b;
        arr[1] = a;
      } else {
        arr[0] = a;
        arr[1] = b;
      }
      return arr;
    }
    static void Main(string[] args) {
      int[] returnvalue = Program.compare(10, 12);
      Console.WriteLine("Smaller Value = {0}", returnvalue[0]);
      Console.WriteLine("Larger Value = {0}", returnvalue[1]);
    }
  }
}

출력:

Smaller Value = 10
Larger Value = 12

C#에서 배열 반환 유형을 사용하여compare()함수에서 2 개의 정수 값을 반환했습니다. 이 메서드는 동일한 데이터 유형의 여러 값을 반환해야하는 경우에 유용합니다. 서로 다른 데이터 유형의 여러 값을 반환하려는 경우 배열은 동일한 데이터 유형의 값만 저장하므로 배열을 사용할 수 없습니다.

C#의 구조 / 클래스 개체를 사용하여 함수에서 여러 값 반환

구조 및 클래스는 관련 값을 그룹화하는 데 사용됩니다. 값이 동일한 데이터 유형일 필요는 없습니다. 따라서 구조체 또는 클래스 개체를 사용하여 C#의 함수에서 여러 값을 반환 할 수 있습니다. 다음 코드 예제는 구조체 객체를 사용하여 C#의 함수에서 여러 값을 반환하는 방법을 보여줍니다.

using System;

namespace return_multipe_values {
  struct Values {
    public int x;
    public int y;
  }

  class Program {
    public static Values comparevalues(int a, int b) {
      Values V = new Values();
      if (a > b) {
        V.x = b;
        V.y = a;
      } else {
        V.x = a;
        V.y = b;
      }
      return V;
    }
    static void Main(string[] args) {
      Values returnedvalues = Program.comparevalues(10, 12);
      Console.WriteLine("Smaller Value = {0}", returnedvalues.x);
      Console.WriteLine("Larger Value = {0}", returnedvalues.y);
    }
  }
}

출력:

Smaller Value = 10
Larger Value = 12

먼저 함수에서 반환하려는 값을 포함하는Values구조를 정의합니다. 그런 다음 C#에서 반환 유형으로Values구조를 사용하여comparevalues()함수에서 여러 값을 반환했습니다. 반환 된 값은 동일한 구조의 인스턴스에도 저장되어야합니다.

이 목적은 함수의 반환 유형으로 클래스를 사용하여 달성 할 수도 있습니다. 다음 코드는 클래스를 사용하여 C#의 함수에서 여러 값을 반환하는 방법을 보여줍니다.

using System;
public class Sample {
  int x;
  int y;
  public void setxy(int v, int u) {
    x = v;
    y = u;
  }
  public void getxy() {
    Console.WriteLine("The smaller value = {0}", x);
    Console.WriteLine("The greater value = {0}", y);
  }
}
public class Program {
  public static Sample compare(int a, int b) {
    Sample s = new Sample();
    if (a > b) {
      s.setxy(b, a);
    } else {
      s.setxy(a, b);
    }
    return s;
  }
  public static void Main() {
    Sample returnedobj = Program.compare(10, 12);
    returnedobj.getxy();
  }
}

출력:

The smaller value = 10
The greater value = 12

먼저 함수에서 반환하려는 값을 포함하는Sample클래스를 정의합니다. 그런 다음 C#에서 함수의 반환 유형으로Sample클래스를 사용하여compare()함수에서 여러 값을 반환했습니다. 반환 된 값은 동일한 클래스의 인스턴스에도 저장되어야합니다. 두 메서드 모두 함수에서 서로 다른 데이터 유형의 여러 값을 반환하는 데 유용하지만 함수에서 여러 값을 반환하기 위해 전체 클래스 또는 구조를 작성하는 것은 매우 지루하고 시간이 많이 걸립니다.

C#에서Tuples<T1,T2>클래스를 사용하여 함수에서 여러 값 반환

튜플은 C#에서 특정 번호와 특정 값 순서를 갖는 데이터 구조입니다. 튜플은 서로 다른 데이터 유형의 여러 값을 가질 수 있습니다. Tuple<T1,T2>클래스를 사용하여 사용자 지정 튜플을 정의 할 수 있습니다. 특정 시퀀스에서 사용자 정의 데이터 유형을 갖습니다. 다음 코드 예제는 C#에서Tuple<T1,T2>클래스를 사용하여 함수에서 여러 값을 반환하는 방법을 보여줍니다.

using System;

public class Program {
  public static Tuple<string, string, int> ReturnMultipleValues() {
    var result = Tuple.Create<string, string, int>("value1", "value2", 3);
    return result;
  }
  public static void Main() {
    var returnedvalues = ReturnMultipleValues();
    Console.WriteLine(returnedvalues);
  }
}

출력:

(value1, value2, 3)

Tuple<string, string, int>로 함수의 반환 유형을 지정하여ReturnMultipleValues()함수에서 여러 값을 반환합니다. 이는ReturnMultipleValues()함수가string데이터 유형의 처음 두 값과int데이터 유형의 마지막 값을 사용하여 3 개의 값을 반환한다는 것을 의미합니다. 이 반환 값은 유사한 구조의 튜플이나var유형 변수에 저장할 수 있습니다.

C#에서(T1,T2)표기법을 사용하여 함수에서 여러 값 반환

함수에서 여러 값을 반환하는 프로세스를 단순화하기 위해Tuple<T1,T2>클래스를 사용하는 방법을 설명하는 위 섹션은 튜플 선언의(T1, T2)표기법을 사용하여 더욱 단축 할 수 있습니다. (T1, T2)표기법은 코드를 줄여Tuple<T1,T2>클래스와 동일한 작업을 수행합니다. 다음 코딩 예제는(T1, T2)표기법을 사용하여 C#의 함수에서 여러 값을 반환하는 방법을 보여줍니다.

using System;

public class Program {
  public static (string, string, int) ReturnMultipleValues() {
    return ("value1", "value2", 3);
    ;
  }
  public static void Main() {
    (string val1, string val2, int val3) = ReturnMultipleValues();
    Console.WriteLine("{0} {1} {2}", val1, val2, val3);
  }
}

출력:

value1 value2 3

위의 코드에서는 C#의(T1,T2)표기법을 사용하여ReturnMultipleValues()함수에서 여러 값을 반환했습니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp Function