C#에서 일반 함수 만들기

Muhammad Maisam Abbas 2024년2월16일
  1. C#에서 함수 오버로딩을 사용하여 일반 함수 만들기
  2. C#에서 T 클래스를 사용하여 일반 함수 만들기
C#에서 일반 함수 만들기

이 자습서에서는 C#에서 일반 반환 형식으로 함수를 만드는 방법에 대해 설명합니다.

C#에서 함수 오버로딩을 사용하여 일반 함수 만들기

다른 데이터 유형에 동일한 기능을 적용해야 하는 시나리오에 직면하면 해당 문제에 대해 여러 솔루션을 사용할 수 있습니다.

우리의 첫 번째 솔루션은 함수 오버로딩을 포함합니다. 여기에서 이름은 같지만 반환 유형 및/또는 매개변수가 다른 여러 함수를 만듭니다.

다음 코드 조각은 C#에서 함수 오버로딩을 사용하여 일반 함수를 달성하는 방법을 보여줍니다.

class myClass {
  public int div(int a, int b) {
    return a / b;
  }
  public double div(double a, double b) {
    return a / b;
  }

  public static void Main(String[] args) {
    myClass ob = new myClass();

    int result1 = ob.div(12, 2);
    Console.WriteLine(result1);
    double result2 = ob.div(13, 2.5);
    Console.WriteLine(result2);
  }
}

출력:

6
5.2

C#에서 정수 및 십진수 나누기를 처리하는 동일한 이름의 두 가지 다른 함수 div()를 정의했습니다. 유사하게, 더 많은 경우를 처리하기 위해 더 많은 함수를 작성할 수 있습니다.

이 방법의 장점은 모든 데이터 유형에 대해 동일한 작업을 수행할 의무가 없다는 것입니다. 한 데이터 유형으로 한 가지 작업을 수행하고 다른 데이터 유형으로 반대 작업을 수행할 수 있습니다.

그것은 모두 우리의 시나리오와 필요에 달려 있습니다.

이 접근 방식의 명백한 단점은 많은 코드를 작성해야 한다는 것입니다. 이 문제는 동일한 작업을 수행하지만 모든 데이터 유형을 다루어야 할 때 분명해집니다.

C#에서 T 클래스를 사용하여 일반 함수 만들기

이 접근 방식은 모든 데이터 유형에 대해 동일한 작업을 수행하고 많은 경우를 처리해야 하는 시나리오에서 가장 좋습니다.

이러한 유형의 작업의 예는 데이터베이스에서 데이터를 읽는 것입니다. 여기서 우리는 한 열의 데이터 유형이 동일하다는 것을 알고 있지만 데이터 유형이나 열에 대해 미리 알지 못합니다.

C#에서 일반 함수T 형식 매개 변수로 선언된 함수입니다. 이 유형 매개변수 T는 함수 유형을 정의하기 위해 함수를 호출하는 동안 사용됩니다.

매번 유형 매개변수로 다른 데이터 유형을 사용하여 동일한 함수를 호출할 수 있습니다.

다음 코드 조각은 형식 매개 변수를 사용하여 C#에서 제네릭 반환 형식이 있는 함수를 선언하고 사용하는 방법을 보여줍니다.

static T changeType<T>(string v) {
  return (T)Convert.ChangeType(v, typeof(T));
}
string s = "92";
int ci = changeType<int>(s);
float cf = changeType<float>(s);
decimal cd = changeType<decimal>(s);
Console.WriteLine(ci);
Console.WriteLine(cf);
Console.WriteLine(cd);

출력:

92
92
92

위의 코드에서 유형 매개변수 T를 사용하여 changeType<T>() 함수를 선언했습니다. 이 함수는 문자열 변수 v를 입력 매개변수로 사용하고, 입력 매개변수 v의 데이터 유형을 T로 변환하고, 결과를 T로 변환하고 반환합니다.

출력은 92 문자열 데이터 유형을 각각 정수, 부동 소수점 및 십진수로 변경하려고 할 때 어떤 일이 발생하는지 보여줍니다.

이 접근 방식의 문제점은 문자열이 유형 매개변수 T로 유형 변환할 수 없는 경우 런타임 오류가 발생한다는 것입니다.

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 Data Type