제목에서 언급했듯이 메서드의 반환 형식이 일반적인 경우 params 메서드가 generic인지 확인하고 싶습니다. 예를 들어메소드 매개 변수 유형/반환 유형이 Roslyn에서 일반인지 확인하는 방법은 무엇입니까?
:
여기public ISet<string> Collect(MethodDeclarationSyntax method, SemanticModel semanticModel)
{
return method
.ParameterList
.Parameters
.Select(x => x.Type.ToString())
.ToImmutableHashSet();
}
나는 일반 아닌 method
변수에 대한 PARAMS의 모든 유형을 반환하려면,하지만 난 결과를 필터링 할 수있는 API에서 아무것도 찾을 수 없습니다.
메서드의 반환 형식이 일반적인 지 확인하는 경우에도 동일한 문제가 발생합니다.
명확히하기 위해, 타입이'List'또는'Dictionary .KeyCollection'과 같은 것인지 알아 내려고하고 있습니까? –
svick
아니요 - params/return 값이 일반적인 지 알고 싶습니다. 'public static TValue GetOrDefault (TKey 키)' 'key'매개 변수가 generic인지, 반환 값 'TValue'도 generic인지 알고 싶습니다. –
좋아요, 그래서'ITypeSymbol.TypeKind'에 액세스하여 내가 원하는 것을 찾았습니다. 최선의 접근 방법인지는 확실치 않지만 작동합니다. –