public class User

{

public int Id {get;set;}

public string Name {get;set;}

public int Age {get;set;}

public string Sex {get;set;}

public override string ToString()

{

return $“{Name}今年{Age}岁!”;

}

}

重写之后我们就可以得到我们想要的输出内容了。虽然重写 ToString 可以得到我们想要的内容,但是我们不能在任何情况下都重写 ToString, 只有在以下三种情况下方可重写 ToString :

代码面对的最终用户是开发人员;

需要写入日志;

IDE调试输出。

在上面三种情况下重写 ToString 我们还需要遵循一些设计规范,这些设计规范并不是微软所定义的,而是开发人员在开发过程中总结出来的:

ToString 返回的字符串长度应该简短,内容描述应该清晰;

不要从 ToString 方法中返回 “”,而要返回 null ;

不要再 ToString 方法中引发并抛出异常,针对异常应该及时捕获并处理;

如果返回值存在地域文化(比如语言)或存在格式化要求,那么就必须重写 ToString 方法;

ToString 重写后必须返回独一无二的字符串来标识实例对象。

到这里为止我们讲解完了 ToString 重写的方法以及规则。相对来说 ToString 方法重写是 Object 虚方法重写中十分简单的部分,作为开发人员只需按照我前面多说的规则、方法以及实际情况来重写即可。

二、 Equals 和 ReferenceEquals

在 C# 中如果对两个对象进行相等判断,一共有两种情况分别是:判断两者的值相等 或者 判断两者的引用地址相同 。一般情况下我们需要对值类型对象判断值相等,对引用类型对象判断指向地址相同。Equals 就是用来对引用类型对象判断指向地址是否相同的。对于重写 Equals 方法,很多开发人员认为易如反掌,但是在开发中往往忘记一些很重要的细节,这些细节对于程序来说至关重要,下面我将一一进行详细讲解。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查