在 VSIX Visual Studio 可扩展性中,如何获取函数的参数是 'ref'、'out' 还是值类型
In VSIX Visual Studio Extensibility How do you get whether a Parameter of a Function is an 'ref', 'out' or value type
我在项目中的作用我运行VSIX中的是这个;
public void Method1(string name, out int age)
{
age = 0;
int g1 = 0;
//
int g = 0;
}
检查函数参数的 VSIX 项目代码是
// 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'还是值类型?
(比如Method1中的参数'age'就是一个'out')
使用包含更多信息的CodeParameter2界面:
((CodeParameter2)codeElement2).ParameterKind
我在项目中的作用我运行VSIX中的是这个;
public void Method1(string name, out int age)
{
age = 0;
int g1 = 0;
//
int g = 0;
}
检查函数参数的 VSIX 项目代码是
// 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'还是值类型?
(比如Method1中的参数'age'就是一个'out')
使用包含更多信息的CodeParameter2界面:
((CodeParameter2)codeElement2).ParameterKind