如何使用 ReSharper SDK 确定方法的返回类型?

Posted

技术标签:

【中文标题】如何使用 ReSharper SDK 确定方法的返回类型?【英文标题】:How do you determine the return type of a method using the ReSharper SDK? 【发布时间】:2013-05-07 23:57:40 【问题描述】:

我正在尝试编写一个简单的 ReSharper 7.1 插件来在某些情况下更改方法的返回类型。

我从ElementProblemAnalyzer<IMethodDeclaration> 派生了我的类并实现了Run 方法,如下所示:

    protected override void Run(IMethodDeclaration element, ElementProblemAnalyzerData data, IHighlightingConsumer consumer)
    
            consumer.AddHighlighting(new CustomHighlighting(element), element.TypeUsage.GetDocumentRange(), element.GetContainingFile());   
    

效果很好,因为它突出了每个方法的返回类型。我似乎无法弄清楚如何检查返回类型是否为void,也无法将方法类型从void 更改为其他类型。

我看到IMethodDeclaration 接口有一个TypeUsage,它是IPreDefinedType 的一个实例,它又实现了IType,但是ReSharper SDK 文档没有解释如何检查该方法的返回类型,也不知道如何更改返回类型。

【问题讨论】:

这仍然是真实的吗? @DmitryOsinovskiy 我暂时搁置了这个想法,但是是的,我仍然对答案感兴趣。 【参考方案1】:

有点过了,不知道你是否还在寻找答案。其他人也可能会觉得这很有帮助。您可以使用以下内容:

element.DeclaredElement.ReturnType.GetPresentableName(CSharpLanguage.Instance);

很遗憾,我不太清楚如何设置返回类型。

【讨论】:

以上是关于如何使用 ReSharper SDK 确定方法的返回类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 IType (Resharper 8 SDK) 获取 Type 实例

如何使用 ReSharper SDK 创建 [CustomAttribute(typeof(GenericType<,>))]?

无法调试使用 SDK 制作的 ReSharper 插件

Resharper SDK - 创建文件

使用 Resharper SDK 查找 ITypeElement 或 IDeclaredElement 的用法

上下文操作的 ReSharper SDK 测试不起作用