C#中命名的字符串格式

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}", ...);

能够使用变量名称来做这件事会很好,但字典也是可以接受的。


慕婉清6462132
浏览 641回答 3
3回答

呼如林

没有内置的方法来处理它。这是一种方法string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);这是另一个Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);第三种改进方法部分基于上述两种方法,来自Phil Haack

万千封印

插值字符串被添加到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中的“发送微笑”)
打开App,查看更多内容
随时随地看视频慕课网APP