c#6 字符串 插值_C#6中的字符串插值和覆盖的ToString()

那么$“{email}”字符串会自动转换为string.Format(“{0}”,email),而此方法的第二个参数是params object []类型.所以它在调用ToString()方法之前,将所有的值上传到对象.在您的代码中,您只需在ValueBase类中替换新的方法,并且EmailAddress类中的override关键字将实现此抽象方法,而不是原始对象.

如果您将第二个值转换为明确对象,您可以轻松测试它:

var email = new EmailAddress("joe@bloggs.com");

string emailString1 = $"{email}";

string emailString2 = ((object)email).ToString();

如你所见,emailString2也返回typename.您可以从抽象类中删除ToString()方法,并让EmailAdress类实现对象的ToString()或在抽象类中实现它.例如 :

public abstract class ValueBase

{

// overrides object's ToString()

public override string ToString()

{

return base.ToString();

}

}

public class EmailAddress : ValueBase

{

...

// overrides ValueBase's ToString()

public override string ToString()

{

return MailAddress.Address;

}

}

使用这个新的代码,输出是如预期的:

joe@bloggs.com

joe@bloggs.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值