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

C#自定义Product类打印对象仅输出命名空间与类名如何解决

C#自定义类打印属性信息解决方案
  • 你遇到的输出类名而非属性的问题是C#的默认机制导致:所有类默认继承自Object基类,基类自带的ToString()方法默认返回值就是完整命名空间+类名,这就是你打印时仅得到exercise_93.Product的根本原因,确实需要重写该方法实现自定义打印内容。
  • 除此之外你的代码还有一个隐藏编译问题:Product类的构造函数未加访问修饰符,C#类成员默认访问级别为private,会导致外部Program类无法调用构造函数实例化对象,需要先调整为public。

修复后的完整Product类代码

namespace exercise_93
{
  public class Product
  {
    public string ProductName;
    public double ProductPrize;
    public int ProductAmount;
    // 构造函数加public修饰符,允许外部实例化
    public Product(string Name,double Prize,int Amount)
    {
     this.ProductName = Name;
     this.ProductPrize = Prize;
     this.ProductAmount = Amount;
    }   
    // 重写Object基类的ToString方法自定义输出内容
    public override string ToString()
    {
        // 输出格式可根据需求自行调整
        return $"商品名称:{ProductName},单价:{ProductPrize},库存数量:{ProductAmount}";
    }
  }    
}

修改后你原来的Console.WriteLine(banana.ToString());即可正常输出属性信息,也可以简写为Console.WriteLine(banana);,方法会自动调用对象的ToString()方法,效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:36:03