c# 동적 - 제약 조건이 여러 개인 일반 메소드




컨트롤 제어 (2)

두 가지 일반 매개 변수가있는 제네릭 메서드가 있습니다. 아래 코드를 컴파일하려고했지만 작동하지 않습니다. .NET 제한 사항입니까? 다른 매개 변수에 대해 여러 제약 조건을 가질 수 있습니까?

public TResponse Call<TResponse, TRequest>(TRequest request)
  where TRequest : MyClass, TResponse : MyOtherClass

Answers

이 작업을 수행 할 수 있습니다. 구문이 약간 잘못되었습니다. 쉼표로 구분하는 대신 각 제약 조건에 대한 where 가 필요합니다.

public TResponse Call<TResponse, TRequest>(TRequest request)
    where TRequest : MyClass
    where TResponse : MyOtherClass

기존 답변은 C # <= 7.2부터 적용됩니다. 그러나 다음을 허용하는 C # 언어 기능 요청 ( corefx 기능 요청과 corefx )이 있습니다.

public class MyGeneric<TEnum> where TEnum : System.Enum
{ }

글을 쓰는 시점에서이 기능은 언어 개발 회의 (Language Development Meetings)에서 "토론 중"입니다.

편집하다

nawfal 의 정보에 따라 C # 7.3 에서 소개되었습니다.





c# generics .net-3.5