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函数就可以了。

You may also like...

Leave a Reply

Your email address will not be published.