ToString的疑惑

rtx2006 2007-10-16 08:31:16
public class my:CollectionBase
{
public override string ToString()
{
return "hello";
}
}

Console.WriteLine(new my());
为什么输出为"collection",而不是"HELLO"呢?重写好像没起作用!!!
...全文
429 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2007-10-16
  • 打赏
  • 举报
回复
public override string ToString()
{
return this.innerList[0].toString();
}
===========
innerList 具体定义??
zhuqueta0101 2007-10-16
  • 打赏
  • 举报
回复
collection是哪出来?你该查查这个,你所给的代码里面没见到~
q359600900 2007-10-16
  • 打赏
  • 举报
回复


Console.WriteLine((new my()).ToString());
rtx2006 2007-10-16
  • 打赏
  • 举报
回复
我测试了下,你这份代码是没问题的, comboBox里面是001 002,ToString也起了正确的作用,现在你问题在哪请明确指出


我现在出现在不是001 002 而是"collection"
mohugomohu 2007-10-16
  • 打赏
  • 举报
回复
Console.WriteLine((new my()).ToString());
是"hello"
tcxx2008 2007-10-16
  • 打赏
  • 举报
回复
a o
zhuqueta0101 2007-10-16
  • 打赏
  • 举报
回复
我测试了下,你这份代码是没问题的, comboBox里面是001 002,ToString也起了正确的作用,现在你问题在哪请明确指出
zhuqueta0101 2007-10-16
  • 打赏
  • 举报
回复
懂你什么意思,重写object的ToString来代替ToString

现在,无论选择那项,combobox1.text都是:"collection" 这句是怎么理解?COMBOBOX里面已经是001 002了没?
zhuqueta0101 2007-10-16
  • 打赏
  • 举报
回复
combobox1.items.add(a1);

a1是当object添加进去了吧?你没ToString()?
rtx2006 2007-10-16
  • 打赏
  • 举报
回复
?????
rtx2006 2007-10-16
  • 打赏
  • 举报
回复
//项目:多列combobox
...
...

//定义my集合类,用以存放多列Combobox中的一行
public class my:CollectionBase
{
....
public my():base()
{ this.clear(); }

public int add(string v)//添加进集合
{
return this.innerList.add(v);
}

public override string ToString()
{
return this.innerList[0].toString();
}
.......
}

//sub
my a1=new my();
a1.add("001");
a1.add("zhangsan");
a1.add("20");

my a2=new my();
a2.add("002");
a2.add("wangwu");
a2.add("22");

combobox1.items.add(a1);
combobox1.items.add(a2);
......
///sub end

怎么在Combobox1中选择第一项时,combobox1.text为001
怎么在Combobox1中选择第二项时,combobox1.text为002
现在,无论选择那项,combobox1.text都是:"collection"



coolbeer 2007-10-16
  • 打赏
  • 举报
回复
经过测试确实输出的是hello啊,楼主拿我们寻开心吧.
rtx2006 2007-10-16
  • 打赏
  • 举报
回复

Console.WriteLine(new my());
输出对象本身时,应该会调用该对象的ToString方法,但现在好像调用的是CollectionBase(父类)的ToString方法,因为结果为:COLLECTION.,还望高手指点!!
symbol441 2007-10-16
  • 打赏
  • 举报
回复
public class my:CollectionBase
{
public override string ToString()
{
return "hello";
}
}

Console.WriteLine(new my());

-----------------------------------------------

Console.WriteLine((new my()).ToString());
danjiewu 2007-10-16
  • 打赏
  • 举报
回复
经测试是hello
lz逗我们玩呢。
Im大灰狼 2007-10-16
  • 打赏
  • 举报
回复
因该是调用类的构造方法,不会调用这个ToString()吧!
要是把return hello写构造函数里,应该可以输出吧!
vwxyzh 2007-10-16
  • 打赏
  • 举报
回复
。。。不可能,一定是hello
绝代坏坏 2007-10-16
  • 打赏
  • 举报
回复
怎么没有构造方法?这样你的类无法实列化呀。
gxpotato 2007-10-16
  • 打赏
  • 举报
回复
你输出了一个my对象实例而你的my是基于CollectionBase的。和toString没有关系。。

要想测试你的代码应该是:

my ToString=new my();
Console.WriteLine(ToString.toString());
rtx2006 2007-10-16
  • 打赏
  • 举报
回复
我想输出对象进,会调用该对象的ToString()方法吧?
加载更多回复(9)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧