C# FormattableString concatenation for multiline interpolation
在C 7中,我尝试使用一个多行内插字符串与formttableString一起使用。不变量,但字符串连接似乎对formttableString无效。
根据文档:FormattableString实例可能是由C或VisualBasic中的插入字符串产生的。
以下FormttableString多行连接未编译:
1 2 3 4 | using static System.FormattableString; string build = Invariant($"{this.x}" + $"{this.y}" + $"$this.z}"); |
Error CS1503 - Argument 1: cannot convert from 'string' to
'System.FormattableString'
使用不带串联的内插字符串编译:
1 2 | using static System.FormattableString; string build = Invariant($"{this.x}"); |
如何实现与
(请注意,formattablestring was added in.NET Framework 4.6.)
不变量方法需要
对于单行文本,应该尝试使用此方法-
1 2 3 4 | public string X { get; set; } ="This is X"; public string Y { get; set; } ="This is Y"; public string Z { get; set; } ="This is Z"; string build = Invariant($"{this.x} {this.y} {this.z}"); |
输出-
This is X This is Y This is Z
为了实现
1 2 3 4 | FormattableString fs = $@"{this.X} {this.Y} {this.Z}"; string build = Invariant(fs); |
输出-
This is X
This is Y
This is Z