Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 제네릭 메서드에서 어떻게 null을 반환할 수 있습니까?

<시간/>

Generics를 사용하면 필드, 메서드, 매개변수 등의 유형에 대한 자리 표시자가 있는 클래스를 정의할 수 있습니다. Generics는 이러한 자리 표시자를 컴파일 타임에 특정 유형으로 대체합니다. 제네릭은 꺾쇠 괄호 <>를 사용하여 정의할 수 있습니다. 컬렉션의 주요 제한 사항은 효과적인 형식 검사가 없다는 것입니다. 즉, C# 프로그래밍 언어의 모든 클래스가 개체 기본 클래스에서 확장되기 때문에 모든 개체를 컬렉션에 넣을 수 있습니다.

또한 일반 메서드와 같이 제네릭 메서드에서 단순히 null을 반환할 수 없습니다. 다음은 null을 반환하려고 하면 일반 메서드에서 발생하는 오류입니다.

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
      }
      public static T Add<T>(T parameter1, T parameter2) {
         return null;
      }
   }
}

C#의 제네릭 메서드에서 어떻게 null을 반환할 수 있습니까?

따라서 일반 메서드에서 null 또는 기본값을 반환하려면 default()를 사용할 수 있습니다. default(T)는 제공된 유형의 기본 개체를 반환합니다.

예시

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
         Console.ReadLine();
      }
      public static T Add<T>(T parameter1, T parameter2) {
         var defaultVal = default(T);
         Console.WriteLine(defaultVal);
         return defaultVal;
      }
   }
}

출력

코드의 출력은

0

여기서 우리는 정수 0의 기본값이 반환되는 것을 볼 수 있습니다.