Jam*_*son 7 c# string formatting
真的很烦人C#似乎强迫你明确命名String.Format中每个参数的索引,如果你想在某个地方添加另一个参数,你必须重新索引字符串或将新参数放在最后.
有没有办法让C#自动执行此操作?
例如(我知道这是毫无意义的小贩,这只是一个例子:)
我开始:
String.Format("{0} {1} {1} {2} {3}", a, b, c, d)
Run Code Online (Sandbox Code Playgroud)
如果我想在开头添加一个参数,我可以执行以下操作之一:
String.Format("{4} {0} {1} {1} {2} {3}", a, b, c, d, e)
String.Format("{0} {1} {2} {2} {3} {4}", e, a, b, c, d)
Run Code Online (Sandbox Code Playgroud)
例如,在Delphi中我可以做到相当于:
String.Format("{} {} {} {2} {} {}", e, a, b, c, d)
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 24
好吧,C#中没有任何内容可以自动为您执行此操作.你总是可以编写自己的方法来做到这一点,但坦率地说,我发现它的可读性较差.还有很多事情要做(IMO)来理解你的最后一行比前一行更好.当你击中时,{2}
你必须在精神上回溯并用以前的项目替换{3}
以跳过{2}
等等.
就个人而言,我更喜欢需要更长时间输入的代码,但是读起来很清楚.
从 Visual Studio 2015 开始,您可以使用Interpolated Strings来回避这个问题(它是一个编译器技巧,因此您定位的 .net 框架的哪个版本无关紧要)。
代码看起来像这样
string txt = $"{person.ForeName} is not at home {person.Something}";
Run Code Online (Sandbox Code Playgroud)
我认为它使代码更具可读性且不易出错。