我发现虽然字符串插值在应用于我现有的代码库的字符串格式调用时非常好,但考虑到通常首选的列限制,字符串对于单行很快就会变得太长.特别是当插值的表达式很复杂时.使用格式字符串,您可以将变量列表拆分为多行.
var str = string.Format("some text {0} more text {1}",
    obj1.property,
    obj2.property);
有没有人有任何打破这些线路的首选方法?
我想你可以这样做:
var str = $"some text { obj1.property }" +
  " more text { obj2.property };
ang*_*son 177
您可以将该行分成多行,但我不会说语法看起来很好.
您需要使用$@语法来使用插值的逐字字符串,并且可以在{...}参数中放置换行符,如下所示:
string s = $@"This is all {
    10
    } going to be one long {
    DateTime.Now
    } line.";
上面的字符串不包含任何换行符,实际上会有这样的内容:
这是所有10将是一个长01.08.2015 23.49.47线.
(注意,挪威格式)
现在,说完了,我不会停止使用string.Format.在我看来,这些字符串插值表达式中的一些看起来非常好,但更复杂的表达式开始变得非常难以阅读.考虑到除非你使用FormattableString,否则代码将编译成一个调用String.Format,我会说继续String.Format它有意义的地方.
Mar*_*zek 58
您可以组合$并@在一起,得到的字符串插值和多行字符串文字:
var str = $@"some text { obj1.property }
     more text { obj2.property }";
但这会给你一个NewLine角色,所以它可能不是你想要的.
Col*_*nic 18
虽然OP问别的东西,我希望很多人阅读这个问题想插一多$""的作品一样@"".为此,请使用$@""
$@"Height: {height}
Width: {width}
Background: {background}"
就是这个:
var str = $"some text { obj1.property }" +
          $" more text { obj2.property }";
注意第二$个$"..." + $"..."
| 归档时间: | 
 | 
| 查看次数: | 32938 次 | 
| 最近记录: |