C# 如何 override ToString方法
众所周知,在C#中所有的class和struct都会继承object类。所以,在C#中,每一个object都有一个ToString的方法,他会返回相关的string。比如我们来看一下下面这个例子:
int x = 7; Console.WriteLine(x.ToString()); bool xb = true; Console.WriteLine(xb.ToString()); string xs = "test"; Console.WriteLine(xs.ToString());
他们的输出如下:

下面我们来看一个类,这个是一个很简单的类,他包含两个property name和Age,这里我们就overrid了ToString的函数,你可以使用任何你想要的方式来重写这个函数,只要return一个string就可以了。
class Person { public string Name { get; set; } public int Age { get; set; } public override string ToString() { return String.Format("Name is {0}, Age is {1}", Name, Age); } }
调用的代码如下:
Person person = new Person { Name = "Jason", Age = 20 }; Console.WriteLine(person.ToString());
这样就可以显示下面这个输出了:

ToString的Override就是这么简单,和别的overide的函数并没有太多的差别,但是他用的非常多,因为我们经常会需要打印一下log,而ToString基本就是我们打印log的首选函数,你不需要定义什么别的函数比如showPersonInfo之类的来返回一个string,只要重写ToString函数就可以了。
Recent Comments