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、またはその他の方法では、どちらがより良い方法ですか?