罗斯林是否关心句法的正确性.如果是这样,怎么打开它?

1 c# roslyn

我想从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时如何使这些错误消失?

Pat*_*man 5

它在正常设置编译.它只是发出警告:

检测到无法访问的代码

罗斯林没有错.

  • @UlugbekUmirov这很可能是问题本身的错误,因为OP想要显示他的真实代码的简化示例. (3认同)