【发布时间】:2013-04-10 11:18:18
【问题描述】:
我在使用数组指向一个对象然后将该对象的内容打印到屏幕时遇到问题。
到目前为止,我的代码是:
//Card
Card cardPack = new Card();
string[] myCard = new string[10];
//card objects
Card cardOne = new Card();
{
cardPack.name = "Vodka";
cardPack.percentage = '5';
cardPack.quality = '6';
cardPack.quantity = '4';
cardPack.taste = '3';
}
据我所知,此代码有效,因为我没有任何类型的错误。
//Card Array
myCard[0] = Convert.ToString(cardOne);
然后我用它来指向实际的对象,这又不会出错,所以我认为它工作正常。
Console.WriteLine(myCard[0]);
这也不会出错,但是当我尝试运行程序时,我得到的唯一输出是
"Card"
我很困惑! 你能帮我么?谢谢!
【问题讨论】:
-
Convert.ToString() 只是获取对象类型名称。如果您想获得的不仅仅是类型名称,您需要覆盖 Card 类上的 ToString - .NET 框架子类对象和对象中的所有类型都包含一个 ToString() 虚拟方法
-
我该怎么做?抱歉,我很久没有这样做了?
-
你想做什么?只是获取一张卡片的名称,还是调用一个返回整张卡片描述的方法? (这将是 Card 中覆盖的
ToString()) -
@Kjartan 我想输出 cardOne 对象中存在的所有内容,所以我希望输出为:Vodka 5 6 4 3
-
那么我的猜测是正确的 :) - 只需将整个对象存储在数组中(类型为
Card),然后在该类中调用覆盖的ToString()。