메서드에 제네릭 형식 변환기 함수를 보내고 싶지만 어떻게 처리해야하는지 알 수 없습니다.generic 형식 매개 변수로 func을 전달할 수 있습니까?
public void SomeUtility(Func<T><object,T> converter)
{
var myType = converter<MyType>("foo");
}
편집 (코멘트도 내 설명을 참조하십시오 :
는 여기에 내가, 문제는 내 FUNC와 함께 제네릭 형식을 지정하는 방법을 몰라 달성하기 위해 무엇을 좋아 설명 유효하지 않은 구문입니다 로렌스)와 함께 "일반적인 형식 변환기"으로 나는 내 방식의 다음 라인이 될 수 있도록, 어떤 강력한 유형 <T> (반대하지)로 변환 할 수있는 변환기를 전달하고자하는 의미 :
var myOtherType = converter<MyOtherType>("foo");
내가 좋아하는 대표단 매개 변수 이런 식으로 뭔가 보일 것 같은 엉덩이 :
private delegate TOutput myConverterDelegate<TOutput>(object objectToConvert);
이 더를 구문/C 번호 탐사 지금, 나는 아마 대신 인터페이스를 사용하는 일을 얻을 수 있지만, 나는 이것이으로 수행 할 수 있습니다 희망해야 할 일 func/delegate.
메서드 본문 내부에 형식을 중요하게 지정 했습니까? 이 메서드는 호출자가 정의한 특정 형식이 아닌 여러 형식에 대한 변환이 필요할 수 있음을 암시하고 있습니까? –
예, "generic type converter"로 표현하려고 했으므로 다음 줄이 var 일 수 있습니다. myOtherType = converter ("foo"); –
joeriks
알았어 - 그럼 내 대답이 유용하다고 생각할거야 :) –