zoukankan      html  css  js  c++  java
  • 提取c#代码文件中的方法块

         此方法是取C#文件里面的方法块,并删除缩进符,感觉写得还是比较容易懂的,所以收藏下,以便将来用到.

           private static string GetCodeBlock(string allCode, string blockName)
            {
                int blockStart = allCode.IndexOf(blockName, StringComparison.OrdinalIgnoreCase);
                
                if (blockStart == -1)
                    return "// " + blockName + " code not found";
                blockStart = allCode.LastIndexOf(Environment.NewLine, blockStart, StringComparison.OrdinalIgnoreCase);
                if (blockStart == -1)
                    blockStart = 0;
                else
                    blockStart += Environment.NewLine.Length;
    
                int pos = blockStart;
                int braceCount = 0;
                char c;
                do
                {
                    pos++;
    
                    c = allCode[pos];
                    switch (c)
                    {
                        case '{':
                            braceCount++;
                            break;
    
                        case '}':
                            braceCount--;
                            break;
                    }
                } while (pos < allCode.Length && !(c == '}' && braceCount == 0));
    
                int blockEnd = pos;
                
                string blockCode = allCode.Substring(blockStart, blockEnd - blockStart + 1);
    
                return removeIndent(blockCode);
            }
    
            private static string RemoveIndent(string code)
            {
                int indentSpaces = 0;
                while (code[indentSpaces] == ' ')
                {
                    indentSpaces++;
                }
    
                StringBuilder builder = new StringBuilder();
                string[] codeLines = code.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
                foreach (string line in codeLines)
                {
                    if (indentSpaces < line.Length)
                        builder.AppendLine(line.Substring(indentSpaces));
                    else
                        builder.AppendLine();
                }
    
                return builder.ToString();
            }

      

  • 相关阅读:
    PHP培训教程 PHP里10个鲜为人知但却非常有用的函数
    跟我学Spring Boot(一)创建Spring Boot 项目
    android 4.0 webview 无法播放视频
    vs2008 安装部署 启动项
    android 使用webview 加载网页
    hbase 无法打开60010网页
    oracle 提示没有监听
    hbase 基本命令
    hbase 单机版安装
    win7 64位远程连接oracle11g64位
  • 原文地址:https://www.cnblogs.com/cang/p/4253425.html
Copyright © 2011-2022 走看看