В VSIX Visual Studio Расширяемость Как узнать, является ли параметр функции типом 'ref', 'out' или значением? - PullRequest
0 голосов
/ 09 марта 2020

Моя функция в проекте Я запускаю VSIX в этом;

        public void Method1(string name, out int age)
        {
            age = 0;
            int g1 = 0;
            //
            int g = 0;
        }

И код проекта VSIX для go над параметрами функции равен

//  Here 'codeElement' is the Function Having Parameters.
                    foreach (CodeElement codeElement2 in codeElement.Children)
                    {
                        if (codeElement2.Kind == vsCMElement.vsCMElementParameter)
                        {
                            string parameterName = codeElement2.Name;
                            string parameterDataType = ((CodeParameter)codeElement2).Type.AsString;
                            VsShellUtilities.ShowMessageBox(
                                this.package,
                                ">>>>>" + " : " + parameterName + " : " + parameterDataType,
                                "MESSAGE...",
                                OLEMSGICON.OLEMSGICON_INFO,
                                OLEMSGBUTTON.OLEMSGBUTTON_OK,
                                OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
                        }
                    }

Этот код отлично работает и дает имя параметра и его тип данных.

Как узнать, является ли параметр «out», «ref» или типом значения?

(как параметр ' age 'в Method1 - это' out ')

1 Ответ

1 голос
/ 09 марта 2020

Используйте интерфейс CodeParameter2 , который содержит больше информации:

((CodeParameter2)codeElement2).ParameterKind
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...