Как вы определяете тип возврата метода, используя ReSharper SDK?

Я пытаюсь написать простой плагин 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 не объясняет, как вы можете проверить тип возвращаемого значения метода или изменить тип возвращаемого значения.

1 ответ

Прошло немного времени, и я не знаю, ищите ли вы ответ. Другие могут также найти это полезным. Вы можете использовать что-то вроде следующего:

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

К сожалению, я не совсем знаю, как установить тип возвращаемого значения.

Другие вопросы по тегам