无法向Queue<T>添加数据
vs2005 .net2.0
如下代码
class Test
{
Queue<string> _s = new Queue<string>();
public void Add(string s)
{
_s.Enqueue(s);//无法将s加入队列
}
public new string ToString()
{
if(_s.Count>0)
return _s.Dequeue();
return null;
}
}
问题就出在ToString()中引用了_s,如果ToString()中不调用_s,或者把ToString()更名的话都已能正常把数据加入队列,奇了怪了。
[解决办法]
为什么要从写tostring呢?
Queue <string> _s = new Queue <string>();
public void Add(string s)
{
_s.Enqueue(s); //无法将s加入队列
}
string value=q.Dequeue();这样就使里面的 内容了?为什么从写?
[解决办法]
我测试,正常的
public override string ToString()
[解决办法]
ToString 是基类的方法
[解决办法]
using System;
using System.Collections.Generic;
class Test
{
Queue <string> _s = new Queue <string>();
public void Add(string s)
{
_s.Enqueue(s); //无法将s加入队列
}
public new string ToString()
{
if(_s.Count>0)
return _s.Dequeue();
return null;
}
public static void Main()
{
Test t = new Test();
t.Add("this");
Console.WriteLine(t.ToString());
}
}
运行正常
SDK 2.0
[解决办法]
看到你的类后,自己做了测试,没有任何的问题啊。
[解决办法]
很简单,那个泛型的定义是object.ToString()实现的。。。。
可能。。。
嘿嘿。
[解决办法]
....你的代码我这里没问题
没有你出现的情况..
[解决办法]
[解决办法]
3 楼已经给你正解了。 把 new 关键词换成 override
[解决办法]
你要找到这个类里面定义的Tostring