我想从C#中找出使用Roslyn的代码行.这是我试过的.
SyntaxTree tree = SyntaxTree.ParseText(@"int fun(int x){ int y = 0; x++; return x+1; return z;}
double funny(double x){ return x/2.13;}");
List<MethodDeclarationSyntax> methods = tree.GetRoot()
.DescendantNodes()
.Where(d => d.Kind == SyntaxKind.MethodDeclaration)
.Cast<MethodDeclarationSyntax>()
.ToList();
int lvc = methods[0].Body.Statements
.Count(x => x.Kind == SyntaxKind.LocalDeclarationStatement);
methods.Select(z => new { MethodName = z.Identifier.ValueText, LoC = z.Body.Statements.Count })
.OrderByDescending(x => x.LoC)
.ToList()
.ForEach(x => Console.WriteLine(x.MethodName + " " + x.LoC));
Run Code Online (Sandbox Code Playgroud)
我得到了以下输出
好玩的4
好笑1
但是我在函数中有两个return语句fun
.该代码无法在实际设置中编译.使用Roslyn时如何使这些错误消失?
它在正常设置中编译.它只是发出警告:
检测到无法访问的代码
罗斯林没有错.
归档时间: |
|
查看次数: |
98 次 |
最近记录: |