繁体   English   中英

String.Format某些参数

[英]String.Format certain argument

我认为这是一个常见问题,但我似乎无法在SO或谷歌上找到任何东西。

是否可以只格式化一个参数。 例如,格式string foo = "{0} is {1} when {2}"; 所以它返回读取"{0} is cray when {2}"

意向:
我试图格式化字符串,同时覆盖一个方法,然后在它的基本方法中进行格式化

成功
得到它,谢谢这个答案 ,所有的答案都很有帮助:)。

这个单元测试工作:

string foo = String.Format("{0} is {1} when {2}", "{0}", "cray", "{2}");
Assert.AreEqual("{0} is cray when {2}", foo);
string bar = string.Format(foo, "this", null, "it works");
Assert.AreEqual("this is cray when it works", bar);

从表面上看你的问题,我想你可以做到以下几点:

string foo = String.Format("{0} is {1} when {2}", "{0}", "cray", "{2}");

也就是说,只需用自己替换每个未评估的格式项。

不,这是不可能的。 String.Format将尝试替换每个括号内的占位符。 如果您没有提供正确数量的参数,则会引发异常。

我不确定你为什么要这样做,但如果你想让输出看起来像这样,你将不得不逃避括号

var foo = String.Format("{{0}} is {0} when {{1}}", "cray");
// foo is "{0} is cray when {1}"

也许如果你告诉我们你究竟想做什么 ,我们将能够更好地帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM