四、类型自定义格式字符串.doc.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四、类型自定义格式字符串.doc.doc

类型自定义格式字符串 引言 String可能是使用最多的类型,ToString()则应该是大家使用得最多的方法了。然而它不应该仅仅是用来输出类型的名称,如果使用得当,它可以方便地输出我们对类型自定义的格式。本文将循序渐进地讨论ToString(),以及相关的IFormattable、IFormatProvider以及ICustomFormatter接口。 在类型内部提供自定义格式字符串的能力 继承自System.Object 基类的 ToString() String是人们直接就可以看懂的数据类型之一,很多情况下我们都会期望能够获得类型的一个字符串输出。因此,Microsoft 在.Net Framework所有类型的基类System.Object中提供了一个虚拟的 ToString()方法,它的默认实现是返回对象的类型名称。 假设我们有这样的一个类型,它定义了“朋友”这一对象的一些信息: namespace CustomToString public class Friend { private string familyName; // 姓 private string firstName; // 名 public Friend(string familyName, string firstName){ this.familyName = familyName; this.firstName = firstName; } public Friend(): this(张,子阳){} public string FamilyName { get { return familyName; } } public string FirstName { get { return firstName; } } } } 当我们在Friend的实例上调用 ToString()方法时,便会返回类型的名称:CustomToString.Friend。 Friend f = new Friend(); Console.WriteLine(f.ToString()); // 输出:CustomToString.Friend 覆盖 ToString() 方法 在上面的例子中,不管类型实例(对象)所包含的数据(字段值)是什么,它总是会返回相同的结果(CustomToString.Friend)。很多时候,返回一个对象的类型名称对我们来说没有多大的意义,拿上面来说,我们可能更加期望能够返回朋友的姓名(famliyName和firstName字段的值)。这时候,我们可以简单地覆盖System.Object基类的ToString()方法,在 Friend 类中添加如下方法: // 覆盖System.Object基类的 ToString() 方法 public override string ToString() { return String.Format(Friend: {0}{1}, familyName, firstName); } 此时,我们再次运行代码: Friend f = new Friend(); Console.WriteLine(f.ToString()); // 输出:Friend: 张子阳 f = new Friend(王,涛); Console.WriteLine(f.ToString()); // 输出:Friend: 王涛 可以看到对于不同的对象,ToString()根据对象的字段值返回了不同的结果,这样对我们来说会更加有意义。 重载 ToString() 方法 有时候,我们可能需要将对象按照不同的方式进行格式化。就拿Friend类型来说:西方人是名在前,姓在后;而中国人是 姓在前,名在后。所以如果运行下面的代码,虽然程序不会出错,但从英语语法角度来看却有问题: Friend a = new Friend(Zhang, Jimmy); Console.WriteLine(a.ToString()); // 输出:Friend: ZhangJimmy 而我们期望输出的是:Jimmy Zhang。这个时候,大家可以想一想想 .Net Framework 解决这个问题采用的方法:重载ToString()。让ToString()方法接收一个参数,根据这个参数来进行格式化。比如 int a = 123; Console.W

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档