Surance Center

我也用到了递归

昨天在写“自动生成代码工具”的时候,终于用到了递归。这表示我的编程水平已经有点“算法”的味道了。

我的用法是:
现实模板。而模板是嵌套的。
以下是代码:

  /// <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的内容");
           

posted @ 2006-12-13 12:27  xxp  阅读(206)  评论(0编辑  收藏  举报
Surance Center