我正在尝试生成带有参数的函数。添加函数标头和主体可以正常工作,但是当我尝试添加参数时,出现了一个我无法解决的异常。
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");
但是我觉得这是不好的做法。 我在做什么错了?