Jos*_*hlo 4 c# roslyn roslyn-code-analysis
我仍然是新手Roslyn
,因此希望这不是一个愚蠢的问题。
我正在寻找的是一种查看类是否已实现接口的所有方法的方法,如果没有实现,则高亮显示接口,就像内置的“实现接口”一样。
到目前为止,我可以看到方法名称是否已实现,但是我还没有找到一种方法来查看是否在方法上设置了正确的returntype。
您可以ITypeSymbol.FindImplementationForInterfaceMember
用于此目的。
基本上,您需要的是遍历IMethodSymbol
接口的所有,并检查所讨论的类型是否定义了一个方法,该方法等于上述方法的返回值。
这是草稿:
var interfaceType = ...
var typeInQuestion = ...
foreach(var interfaceMember in interfaceType.GetMembers().OfType<IMethodSymbol>())
{
var memberFound = false;
foreach(var typeMember in typeInQuestion .GetMembers().OfType<IMethodSymbol>())
{
if (typeMember.Equals(typeInQuestion.FindImplementationForInterfaceMember(interfaceMember)))
{
// this member is found
memberFound = true;
break;
}
}
if (!memberFound)
{
return false;
}
}
return true;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
958 次 |
最近记录: |