如何从 SyntaxFactory CompilationUnitSyntax 生成 C# 代码?

发布于 2025-01-19 14:25:44 字数 608 浏览 3 评论 0原文

我正在使用下面的代码构建一个简单的 AST。

output = SF
  .CompilationUnit()
  .WithMembers(SF.SingletonList<MemberDeclarationSyntax>(SF.ClassDeclaration("Class1")))
  .ToFullString();
Console.WriteLine(output);

输出是这样的:

classClass1{}

如何使输出看起来像 C# 代码?

class Class1 {
}

答案:调用 NormalizeWhitespace():

output = SF
  .CompilationUnit()
  .WithMembers(SF.SingletonList<MemberDeclarationSyntax>(SF.ClassDeclaration("Class1")))
  .NormalizeWhitespace()
  .ToFullString();
Console.WriteLine(output);

I am building a simple AST using the code below.

output = SF
  .CompilationUnit()
  .WithMembers(SF.SingletonList<MemberDeclarationSyntax>(SF.ClassDeclaration("Class1")))
  .ToFullString();
Console.WriteLine(output);

The output is this:

classClass1{}

How can I get the output to look like C# code?

class Class1 {
}

ANSWSER: Call NormalizeWhitespace():

output = SF
  .CompilationUnit()
  .WithMembers(SF.SingletonList<MemberDeclarationSyntax>(SF.ClassDeclaration("Class1")))
  .NormalizeWhitespace()
  .ToFullString();
Console.WriteLine(output);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悲念泪 2025-01-26 14:25:44

调用NormalizeWhitespace():

            output = SF
                .CompilationUnit()
                .WithMembers(SF.SingletonList<MemberDeclarationSyntax>(SF.ClassDeclaration("Class1")))
                .NormalizeWhitespace()
                .ToFullString();
            Console.WriteLine(output);

Call NormalizeWhitespace():

            output = SF
                .CompilationUnit()
                .WithMembers(SF.SingletonList<MemberDeclarationSyntax>(SF.ClassDeclaration("Class1")))
                .NormalizeWhitespace()
                .ToFullString();
            Console.WriteLine(output);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文