我也用到了递归
昨天在写“自动生成代码工具”的时候,终于用到了递归。这表示我的编程水平已经有点“算法”的味道了。
我的用法是:
现实模板。而模板是嵌套的。
以下是代码:
/// <summary>
/// 显示未引用其他模板的模板
/// </summary>
public static string ShowNotRefTemplate(string fileName)
{
CodeSurance.DAL.FileAL fa = new FileAL();
return fa.ReadFile(fileName);

}
/// <summary>
/// 显示引用了其他模板的模板
/// </summary>
public static string ShowRefTemplate(string fileName)
{
CodeSurance.DAL.FileAL fa = new FileAL();
string oldStr = fa.ReadFile(fileName);
if(oldStr.IndexOf("$ClassCover")>-1)
oldStr = oldStr.Replace("$ClassCover", ShowNotRefTemplate("ClassCover"));
if (oldStr.IndexOf("$ClassConstructor") > -1)
oldStr = oldStr.Replace("$ClassConstructor", ShowRefTemplate("ClassConstructor"));
if (oldStr.IndexOf("$ClassProperty") > -1)
oldStr = oldStr.Replace("$ClassProperty", ShowRefTemplate("ClassProperty"));
if (oldStr.IndexOf("$InternalMember") > -1)
oldStr = oldStr.Replace("$InternalMember", ShowRefTemplate("InternalMember"));
if (oldStr.IndexOf("$ClassFoot") > -1)
oldStr = oldStr.Replace("$ClassFoot", ShowNotRefTemplate("ClassFoot"));
if (oldStr.IndexOf("$OneMember") > -1)
oldStr = oldStr.Replace("$OneMember", ShowNotRefTemplate("OneMember"));
if (oldStr.IndexOf("$OneProperty") > -1)
oldStr = oldStr.Replace("$OneProperty", ShowNotRefTemplate("OneProperty"));
if (oldStr.IndexOf("$OneParam") > -1)
oldStr = oldStr.Replace("$OneParam", ShowNotRefTemplate("OneParam"));
return oldStr;
}
public static void ModifyTemplate()
{
Console.WriteLine("***********模板修改:***********");
Console.WriteLine("请进入" + CodeSurance.ConfigSet.ConfigOperation.ShowCurrentFilePath() + "Templates\\ 改写摸版。");
Console.WriteLine();
Console.WriteLine("模板注释:");
Console.WriteLine();
Console.WriteLine("$ClassCover 表示ClassCover.txt的内容");
Console.WriteLine("$ClassConstructor 表示ClassConstructor.txt的内容");
Console.WriteLine("$ClassProperty 表示ClassProperty.txt的内容");
Console.WriteLine("$InternalMember 表示InternalMember.txt的内容");
Console.WriteLine("$ClassFoot 表示ClassFoot.txt的内容");
Console.WriteLine("$FiledType 表示字段类型");
Console.WriteLine("$upperFiled 表示字段名称,第一个字符大写");
Console.WriteLine("$lowerFiled 表示字段名称,第一个字符小写");
Console.WriteLine("$OneMember 表示OneMember.txt的内容");
Console.WriteLine("$OneProperty 表示OneProperty.txt的内容");
Console.WriteLine("$TablelName 表示数据库中的表的表名");
Console.WriteLine("$AddName 表示生成的类的名称为 表名+什么");
Console.WriteLine("$OneParam 表示OneParam.txt的内容");


Surance Yin@ Surance Center
转载请注明出处
转载请注明出处




浙公网安备 33010602011771号