将字符串文字拆分为多行会引入不需要的空格

问题描述 投票:0回答:3
MessageBox.Show( @"Could not read the Windows Registry.
                 Bailing out...","Registry Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

这会显示第二行文本,前面有大量空白,除非我取消缩进字符串文字并使我的代码变得混乱。

有办法解决这个问题还是这只是 C# 工作原理的一个细节?

c#
3个回答
1
投票

使用逐字字符串时,每个空格都很重要。下面的代码也不算太难看。

MessageBox.Show( "Could not read the Windows Registry.\n"+
             "Bailing out...","Registry Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

1
投票

逐字字符串文字的全部要点在于它也包含字符串中的空格。如果您不需要空格,则不必将其放入字符串中。

如果您想将一个字符串拆分为多行,而不包含字符串本身中的空格,您可以将字符串本身拆分为多个字符串,每个字符串都在一行上,如下所示:

MessageBox.Show( @"Could not read the Windows Registry."+
                 "Bailing out...","Registry Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

0
投票

C# 11 现在具有 原始字符串文字,允许您编写:

MessageBox.Show("""
                Could not read the Windows Registry.
                Bailing out...
                """, 
                "Registry Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

C# 使用最后一个

"""
的缩进来确定应保留哪些空白以及可以删除哪些空白。

© www.soinside.com 2019 - 2024. All rights reserved.