
C#如何在另外一个类中访问,其他类中实现的Queue队列
三个类classAclassBclassC,B类中定义一个Queue队列,一个填充队列的函数EnQueue(),在A类中newB类实例,使用该实例调用EnQueue()函...
三个类 class A class B class C,B类中定义一个Queue队列,一个填充队列的函数EnQueue(),在A类中new B类实例,使用该实例调用EnQueue()函数填充Queue队列,现想在C类中访问Queue队列中已填充的数据,如何实现?新手,多谢 !
最好给段简单的代码实例。 展开
最好给段简单的代码实例。 展开
4个回答
展开全部
解决思路,既然A和C都要访问B,那么将这三个对象的实例放在同一作用域就可以了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ClassB classB = new ClassB();
ClassA classA = new ClassA(classB);
ClassC classC = new ClassC(classB);
}
}
}
public class ClassA
{
private ClassB classB;
public ClassA(ClassB b)
{
this.classB = b;
}
}
public class ClassB
{
public Queue<object> Queue { get; private set; }
public ClassB()
{
Queue = new Queue<object>();
}
public void EnQueue(object item)
{
this.Queue.Enqueue(item);
}
}
public class ClassC
{
private ClassB classB;
public ClassC(ClassB b)
{
this.classB = b;
}
public void DoSomething()
{
// IList<object> items = this.classB.Queue.ToList();
}
}
展开全部
这种情况使用单例模式比较好。
class Program
{
static void Main(string[] args)
{
//这样的操作在任何类包括A C里面都可以用
B.b.Q.Enqueue(1);
}
}
public class B
{
protected B()
{
Q = new Queue<int>();
}
private static B _b;
public static B b
{
get
{
if (_b == null)
_b = new B();
return _b;
}
}
public Queue<int> Q;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static class B
{
public static Queue queueInB=null;
public void B(){}
public void EnQueue()
{
//填充队列queueInB赋值
}
}
public class A
{
public void setB()
{
B.EnQueue();
}
}
public class C
{
Queue queueInC=B.queueInB;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把这个队列作为一个参数传递才行
EnQueue(加个参数队列对象)
EnQueue(加个参数队列对象)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询