{ -6ren">
gpt4 book ai didi

c# - 调用 NormalizeWhitespace 方法时如何防止 Lambda block 语句中的新行

转载 作者:太空狗 更新时间:2023-10-30 01:35:04 26 4
gpt4 key购买 nike

我有下面的一段代码..

var tree  = CSharpSyntaxTree.ParseText(
@"
Func<string, string> parser = value =>
{
return string.Format(""Hello {0}"", value);
};
");

var root = (CompilationUnitSyntax)tree.GetRoot();
var result = root.NormalizeWhitespace().GetText().ToString();

enter image description here

打印输出时,NormalizeWhitespace 方法将分号推到新行。无论如何我们可以防止这种情况发生吗?

此外,是否可以将分号移近大括号。

感谢您的帮助。

最佳答案

因为字符串文字总是捕获换行符。因此,尝试在结束时结束字符串文字,而不是添加换行符以使括号看起来更漂亮。

var tree  = CSharpSyntaxTree.ParseText(
// The trailing newline might help keep indentation on the first line correct
@"
Func<string, string> parser = value =>
{
return string.Format(""Hello {0}"", value);
};" // Not this string ends here
);

var root = (CompilationUnitSyntax)tree.GetRoot();
var result = root.NormalizeWhitespace().GetText().ToString();

不太优雅的方法包括对结果常量调用 string 方法,例如:

var tree  = CSharpSyntaxTree.ParseText(
(@"
Func<string, string> parser = value =>
{
return string.Format(""Hello {0}"", value);
};
").Trim()); // This could also be .Trim('\n') to only remove the newlines before and after the text

var root = (CompilationUnitSyntax)tree.GetRoot();
var result = root.NormalizeWhitespace().GetText().ToString();

关于c# - 调用 NormalizeWhitespace 方法时如何防止 Lambda block 语句中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27491334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com