C#中命名的字符串格式有没有办法按名称格式化字符串而不是在C#中定位?在python中,我可以做类似这个例子的事情(从这里无耻地偷走):>>> print '%(language)s has %(#)03d quote types.' % \ {'language': "Python", "#": 2}Python has 002 quote types.有没有办法在C#中做到这一点?比如说:String.Format("{some_variable}: {some_other_variable}", ...);能够使用变量名称来做这件事会很好,但字典也是可以接受的。
3 回答
呼如林
TA贡献1798条经验 获得超3个赞
没有内置的方法来处理它。
string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);
Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);
第三种改进方法部分基于上述两种方法,来自Phil Haack
万千封印
TA贡献1891条经验 获得超3个赞
插值字符串被添加到C#6.0和Visual Basic 14中
两者都是通过Visual Studio 2015中的新Roslyn编译器引入的。
C#6.0:
return "\{someVariable} and also \{someOtherVariable}"
要么return $"{someVariable} and also {someOtherVariable}"
来源:C#6.0中的新功能
VB 14:
return $"{someVariable} and also {someOtherVariable}"
来源:VB 14中的新功能
值得注意的功能(在Visual Studio 2015 IDE中):
支持语法着色 - 突出显示字符串中包含的变量
支持重构 - 重命名时,字符串中包含的变量也会被重命名
实际上不仅是变量名,还支持表达式 - 例如,不仅
{index}
有效,而且有效{(index + 1).ToString().Trim()}
请享用!(点击VS中的“发送微笑”)
- 3 回答
- 0 关注
- 640 浏览
添加回答
举报
0/150
提交
取消