代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_C#

无法向Queue<T>添加数据解决办法

发布时间:2019-08-20浏览(494)

    无法向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 是基类的方法

    探讨
    我测试,正常的

    public override string 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