C#中的EnvDTE:如何向生成的C ++函数添加参数?

时间:2018-11-21 16:15:31

标签: c# envdte visual-studio-sdk

我正在尝试生成带有参数的函数。添加函数标头和主体可以正常工作,但是当我尝试添加参数时,出现了一个我无法解决的异常。

func.AddParameter("num", "int");

我得到了例外:

  

无法返回新的代码元素。可能是语法错误。新元素名称:num

这就是我生成头和身体函数的方式:

VCCodeFunction func = (VCCodeFunction)(((VCFileCodeModel)(file.FileCodeModel)).AddFunction("testfunc", vsCMFunction.vsCMFunctionFunction, "testClass2"));
func.BodyText = "for(int i=0; i < 5; ++i){}\n return 1;";

这会生成:

testClass2 testfunc()
{
    for (int i = 0; i < 5; i++) {}
    return 1;
}

作为一个临时解决方案,我通过手动添加参数从正文开始的位置(或括号内)向左添加一个字符来解决该问题

var tp = func.GetStartPoint(vsCMPart.vsCMPartBodyWithDelimiter);
var ep = tp.CreateEditPoint();
ep.CharLeft();
ep.Insert("int num");

但是我觉得这是不好的做法。 我在做什么错了?

0 个答案:

没有答案