You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何修改Albahari的Panda类代码输出配偶名称?

解决熊猫配偶名称输出问题

要让程序输出配偶的名称而不是默认的对象ToString结果,咱们只需要给Panda类添加名称属性,并重写ToString()方法就可以啦,具体步骤如下:

1. 给Panda类添加Name属性

首先给Panda类新增一个public string Name属性,用来存储每只熊猫的名字,这样咱们才能区分不同的个体。

2. 重写ToString()方法

默认的ToString()会返回类的完全限定名(比如ConsoleApp1.Panda),咱们重写这个方法,让它直接返回熊猫的名字,这样输出配偶对象时就会显示对应的名字了。

修改后的完整代码

using System; 
namespace ConsoleApp1 { 
    public class Panda { 
        // 新增Name属性,存储熊猫名字
        public string Name { get; set; }
        public Panda Mate; 
        public void Marry(Panda partner) { 
            Mate = partner; 
            partner.Mate = this; 
        }

        // 重写ToString方法,返回熊猫的名字
        public override string ToString()
        {
            return Name ?? "无名熊猫"; // 处理名字未赋值的情况
        }
    } 
    class Program { 
        static void Main(string[] args) { 
            // 创建熊猫实例时赋值名字
            Panda female= new Panda { Name = "花花" }; 
            Panda male= new Panda { Name = "和叶" }; 
            male.Marry(female); 
            // female.Marry(male); 这行不用重复调用,因为Marry方法里已经双向关联了
            
            Console.WriteLine($"雄性熊猫的配偶是:{male.Mate}"); 
            Console.WriteLine($"雌性熊猫的配偶是:{female.Mate}"); 
            Console.ReadLine(); 
        } 
    } 
}

代码说明

  • 新增的Name属性用了自动属性的写法,方便赋值和读取;
  • 重写ToString()时加了?? "无名熊猫"的判断,避免如果忘记给熊猫赋值名字时输出空字符串;
  • 在Main方法里创建熊猫实例时直接给Name属性赋值,这样输出配偶时就会显示对应的名字;
  • 原来的Marry方法逻辑没问题,双向关联配偶的代码不需要修改。

运行这段代码,你就能看到输出的是配偶的名字而不是默认的对象标识啦~

内容的提问来源于stack exchange,提问作者streamc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:29:58