[C#编程指南]重写ToString方法

C# 中的每个类或结构都隐式继承 Object 类。 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式。 例如,所有 int 类型的变量都有一个 ToString 方法,此方法可让这些变量将其内容作为字符串返回:

int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42

创建自定义类或结构时,应该重写 ToString 方法,以便向客户端代码提供类型信息。

在类或结构中重写 ToString 方法

1. 通过下面的修饰符和返回类型声明 ToString 方法:

public override string ToString(){}

2. 实现该方法,使其返回一个字符串。

下面的示例返回类的名称以及特定于该类的某个实例的数据。

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
 
    public override string ToString()
    {
        return "Person: " + Name + " " + Age;
    }
}

测试 ToString 方法,如下面的代码示例所示:

Person person = new Person { Name = "John", Age = 12 };
Console.WriteLine(person);
// Output:
// Person: John 12
时间: 2024-10-21 09:09:49

[C#编程指南]重写ToString方法的相关文章

Effective Java 第三版——12. 始终重写 toString 方法

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 12. 始终重写 toString 方法 虽然Object类提供了toString方法的实现,但它返回的字符串通常不是你的类的用户想要看到的. 它由类名后跟一个"

java重写toString()方法

toString()方法是Object类的方法,调用toString()会返回对象的描述信息. 1)为什么重写toString()方法呢? 如果不重写,直接调用Object类的toString()方法,打印的是该对象的内存地址(类名@哈希码值).如下代码所示: class Person { String name; String sex; int age; public Person() {} public Person(String name, String sex, int age) { t

C#...何时需要重写ToString()方法?

一般类型,都是继承自System.Object类,默认情况下,object类的ToString方法会返回当前类的类型的字符串表达形式.但也有例外!! DateTime,它就重写ToString方法,DateTime类型的实例的ToString方法返回的就是一个日期的字符串表达形式,而不是DateTime类型的字符串表达形式. 还有一种使用的情况就是,当我们有了一个Student类时,我们使用Console.WriteLine(student),将会输出 "命名空间.Student".这

整个对象也可以打印?-重写toString方法

对象也可以打印? 看到对象是可以打印的,打印了全类名+内存地址 若想自定义打印类的详细信息就要在Person类中重写toString方法 @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("姓名:"+name+"\n"); sb.append("年级:"+gender+"\n"); sb.append(&

重写ToString()方法

重写ToString()方法子类可以重写父类的虚方法Person p=new Person();Console.WriteLine(p.ToString());Console.Readkey(); public class Person{ public override void ToString() { return "Hello World"; } }

java重写toString方法

在输出对象属性时,重写toString按照你希望的输出形式重写 object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码.所以当你要想按照你想要的格式去字符串一些对象的时候,就需要重写toString了. 在实体类中重写toString方法 public String toString() { return "Zoo{" + "id=" + id + ", name='" + nam

为何重写toString方法后会使哈希码能够打印出来

首先还是推荐lz看源代码 简单的讲之所以调用了toString()方法,不是什么编译器默认的,而是因为lz你调用的是out.print()方法仔细看源代码,在PringStream类中,print方法是这样写的 public void print(Object obj) { write(String.valueOf(obj)); }此时调用了String的静态方法valueof这个方法是这样的 public static String valueOf(Object obj) { return (

始终重写 toString 方法

虽然 Object 类提供了 toString 方法的实现,但它返回的字符串通常不是你的类的用户想要看到的.它由类名后跟一个「at」符号(@)和哈希码的无符号十六进制表示组成,例如[email protected] . toString 的通用约定要求,返回的字符串应该是「一个简洁但内容丰富的表示,对人们来说是很容易阅读的」.虽然可以认为 [email protected] 简洁易读,但相比于 707-867-5309 ,但并不是很丰富 . toString 通用约定「建议所有的子类重写这个方法

java对象重写toString方法

java Object的toString方法定义是 [email protected],然而对于对象,很多时候这玩意并没有什么卵用,现在比较常用的需求是将对象转为json字符串,只需在对象中做如下修改即可: import com.alibaba.fastjson.JSON; @Override public String toString() { return JSON.toJSONString(this); }