我想将 2 种类型的类实例排入队列。例如如下,
要排队的类)
class A{
int a1;
int a2;
}
class B{
string b1;
string b2;
}
样品1)
ConcurrentQueue<Object> queue = ConcurrentQueue<Object>();
queue.Enqueue(new A());
queue.Enqueue(new B());
Object item;
while (queue.TryDequeue(out item))
{
A a = item as A;
B b = item as B;
if(a != null){
}
else if(b != null){
}
}
样品2)
class AorB{
public A a = null;
public B b = null;
public AorB(A a){ this.a = a; }
public AorB(B b){ this.b = b; }
}
ConcurrentQueue<AorB> queue = new ConcurrentQueue<AorB>();
queue.Enqueue(new AorB(new A()));
queue.Enqueue(new AorB(new B()));
AorB item;
while (queue.TryDequeue(out item))
{
if(item.a != null){
}
else if(item.b != null){
}
}
哪种方式更好,Sample1、Sample2 还是其他方式?