2013-10-17 2 views
6

함수가 C#의 매개 변수에 지정된 형식의 값을 반환 할 수 있는지 궁금합니다. 여기에 내가 무엇을 원하는C# - 함수의 반환 형식이 매개 변수 중 하나와 동일합니다.

는 :

public ReturnValueUndefined function(undefinedType value) 
{ 
    return value; 
} 

나는 내 함수를 매개 변수로 어떤 수업을하고 같은 클래스를 반환하기를 원하기 때문에 이것을 사용하고 싶습니다.

감사합니다.

+0

가능한 복제본 [일반 메서드의 반환 유형을 어떻게 만들 수 있습니까?] (http://stackoverflow.com/questions/9808035/how-do-i-make-the-return-type-of-a -method-generic) –

답변

18

일반적인 기능을 원합니다. 컴파일러는 당신은 단지 당신은 일반적인 방법에 where 제약 조건을 추가 할 수있는 등 같음, ToString 같은 기본 작업을 수행 할 수 있도록 T 객체가 매개 변수 가정하는 것으로 가정 할 수 있음을 염두에

public T YourFunctionName<T>(T value) 
{ 
    return value; 
} 

유지 계급이나 구조와 같은 구체적인 것입니다.

public T YourFunctionName<T>(T value) where T : class 
{ 
    return value; 
} 

실제로 여러 유형을 처리하기 위해 기본 클래스 또는 인터페이스를 사용하려는 경우가 많습니다. 일반적인 방법을 사용할 때 그 패턴으로하고 싶은 것을 할 수 없다면 빨리 깨닫게됩니다. 제약 조건을 통해 특정 인터페이스 유형에서만 작동하도록 일반 메소드를 제한해야하는 지점으로 이동하면 메소드가 인터페이스의 일부가되기를 원할 것입니다.

+2

또는 인터페이스 : http://msdn.microsoft.com/en-us/library/bb384067.aspx – pollirrata