C# ToString() 方法

在 C# 中,ToString() 方法是所有类的默认方法(因为所有类都隐式继承自 object 类),它的主要作用是将对象转换为字符串表示形式。

默认情况下,ToString() 方法返回的是对象的类型名称。但在实际开发中,我们通常会重写这个方法,以便返回更有意义的对象信息,方便调试和输出。

using System;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Occupation { get; set; }
    
    public Person(string name, int age, string occupation)
    {
        Name = name;
        Age = age;
        Occupation = occupation;
    }
    
    // 重写ToString()方法
    public override string ToString()
    {
        // 返回自定义的字符串表示形式
        return $"Person [姓名: {Name}, 年龄: {Age}, 职业: {Occupation}]";
    }
}

public class Program
{
    public static void Main()
    {
        Person person = new Person("李四", 30, "工程师");
        
        // 调用ToString()方法(显式调用)
        Console.WriteLine(person.ToString());
        
        // 隐式调用:Console.WriteLine会自动调用对象的ToString()方法
        Console.WriteLine(person);
    }
}

在 Python 中,与 C# 中 public override string ToString() 概念相对应的是 __str__() 魔法方法

两者的作用和使用场景非常相似:

  • 都是用于定义对象的字符串表示形式
  • 都会在需要将对象转换为字符串时被自动调用(例如打印对象时)
  • 都可以被重写以提供自定义的、更有意义的对象描述
class Person:
    def __init__(self, name, age, occupation):
        self.name = name
        self.age = age
        self.occupation = occupation
    
    # 对应C#中的ToString()方法
    def __str__(self):
        return f"Person [姓名: {self.name}, 年龄: {self.age}, 职业: {self.occupation}]"

if __name__ == "__main__":
    person = Person("李四", 30, "工程师")
    
    # 显式调用__str__()方法
    print(person.__str__())
    
    # 隐式调用:print会自动调用对象的__str__()方法
    print(person)
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值