为了账号安全,请及时绑定邮箱和手机立即绑定

C#中命名的字符串格式

C#中命名的字符串格式

慕婉清6462132 2019-08-09 17:39:05
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


查看完整回答
反对 回复 2019-08-09
?
万千封印

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}"

  • VB 14:

    return $"{someVariable} and also {someOtherVariable}"

值得注意的功能(在Visual Studio 2015 IDE中):

  • 支持语法着色 - 突出显示字符串中包含的变量

  • 支持重构 - 重命名时,字符串中包含的变量也会被重命名

  • 实际上不仅是变量名,还支持表达式 - 例如,不仅{index}有效,而且有效{(index + 1).ToString().Trim()}

请享用!(点击VS中的“发送微笑”)


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 640 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信