C# 是否有一个类似字符串的命名常量。要替换的空格"&引用;

C# 是否有一个类似字符串的命名常量。要替换的空格"&引用;,c#,C#,用string.Empty代替“真的很可爱,让代码更清晰。 我想知道是否也有一个好的命名常量来替换“”。 我发现了一些想法,比如使用string.Empty.PadLeft(1)或string.Empty.PadRight(1),但我不喜欢它 类似于使用string.Space来代替“将适合这种情况 (评论后编辑) 为了更清楚地说明我的问题的情况: 在多文化的情况下,不应该有任何代码像“无法打开文件”。字符串文本应该移动到资源文件中,然后像Resources.CanNotOpenTheFile一

string.Empty
代替
真的很可爱,让代码更清晰。 我想知道是否也有一个好的命名常量来替换
”。 我发现了一些想法,比如使用
string.Empty.PadLeft(1)
string.Empty.PadRight(1)
,但我不喜欢它

类似于使用
string.Space
来代替
将适合这种情况

(评论后编辑)

为了更清楚地说明我的问题的情况:

在多文化的情况下,不应该有任何代码像
“无法打开文件”
。字符串文本应该移动到资源文件中,然后像
Resources.CanNotOpenTheFile
一样使用


为了确保这一点,代码中不包含任何字符串文字似乎是一条好规则。因此,只要看一眼代码,就可以很快发现糟糕的实现。我认为这很好地解释了为什么我在代码中不使用

没有,但您可以定义自己的代码

public static class MyString 
{
    public const string Space = " ";
}
然后像这样使用它:

Console.Write("Test" + MyString.Space + "Text");

编辑但是你不应该,依我看(根据Marc Gravell和PaulRuane的评论),因为这会使代码可读性降低

使用常量字符,实际上没有必要使用Habib建议的字符串

public static class StringTools
{
    public const char Whitespace = ' ';
}

你对
有什么不满?我个人觉得它们非常清楚(尤其是第一个,我非常喜欢
string.Empty
)我同意@marcGravel。为什么在可以键入3的情况下键入12个字符?..Yes“,”更具可读性(与使用string.Empty一样有效)!@MarcGravel大多数代码分析器,如StyleCop或Resharper,都建议不要在代码中使用字符串文字。@mehrandvd对于“无法打开文件”之类的问题,切换到i18n提供程序与担心如何追加空格之间有着巨大的区别(事实上,在大多数i18n场景中,你不能像那样编写字符串-它根本不起作用,因为大多数短语都需要重新排序)。再次,我想说的是:出于理智的原因做事情。切换到i18n提供程序是明智的;担心
”"
vs
String.Space
不是;这两种方法需要非常不同的方法。一旦你开始使用扩展方法,也许整个方法可以直接添加空格会更好:D@Matíasfidemrazizer,我删除了extensionmethod选项,因为我认为它不合适,然后您可以为eac定义常量字母表的h字母,这样你就可以有“可爱”的代码,比如
var a=MyString.h+MyString.e+MyString.l+MyString.o+MyString.Space+MyString.W+MyString.o+MyString.r+MyString.l+MyString.d+MyString.equirtationmark;
谁在编写这样的代码时不会感到温暖、模糊?@Habib是的,当然是just一个建议:)@PaulRuane,lol,是的,我应该提到上述内容会降低代码的可读性:)也没有理由不这样做;在这两种情况下,它都是一个
常量
,因此编译器将拾取它,但使用
字符串
的API比使用
字符
的API更多。而且,
与“空白”不同
Space
将是一个比
Whitespace
@marcGravel更好的名称,所以这可能更好<代码>常量字符串空格=“\s”@MatíasFidemraizer我知道你在那里做了什么,但我认为如果它编译的话会更好…@marcgravel哈哈哈,是的,对不起。我不知道为什么我认为这存在于C#,也许存在于其他语言中?谁知道呢。无需担心。@Matíasfidelizer在javascript中,请确保:
/\s/