我想要一个C#4字符串常量来表示一个新行和一个标签,如下所示:
internal const string segment = "\r\n\t";
Run Code Online (Sandbox Code Playgroud)
我知道有Environment.Newline,我想我可以像这样使用:
internal const string segment = Environment.NewLine + "\t";
Run Code Online (Sandbox Code Playgroud)
我的问题是构造一个具有新行和制表符的字符串常量的最有效方法是什么?
Ree*_*sey 15
如果您将字符串声明为const,如上所述,效率方面绝对没有区别.任何常量将在编译时替换并使用实习字符串.
不幸的是,第二个选项不是编译时常量,也不会编译.为了使用它,您需要将其声明为:
internal static readonly string segment = Environment.NewLine + "\t";
Run Code Online (Sandbox Code Playgroud)
我个人认为,就意图而言,这一点非常清楚,这将是我的偏好,即使它不是一个编译时间常数.额外的开销/效率损失非常小,我个人会在编译时常量中选择清晰的意图和清晰的代码.
请注意,如果将此代码移植到Mono,使用Environment.NewLine也具有正确的优点,并且您的目标是使用当前的平台行分隔符.在特定情况下,第一个在非Windows平台上将是不正确的.如果您的目标是明确包含"\r\n\t",并且不希望特定于平台的行分隔符,那么Environment.NewLine这将是一个不恰当的选择.
const不行.用static readonly.
internal static readonly string segment = Environment.NewLine + "\t";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13219 次 |
| 最近记录: |