いくつかの提案:
Dictionary.TryGetValueを見てください。コレクションが存在する場合、コレクションからオブジェクトを返すだけでよい場合は、同様に動作します。
Product product;
if (!TryGetProduct(out product))
{
...
}
public bool TryGetProduct(out Product product)
{
bool exists = false;
product = null;
...
if (exists)
{
exists = true;
product = new Product();
}
return exists;
}
オブジェクトと一緒に返したい他のプロパティがある場合は、それらを参照によってパラメーターとして渡すことができます
public Product GetProduct(ref Type1 param1, ref Type2 param2...)
{
param1 = value1;
param2 = value2;
return new Product();
}
別のオプションは、すべてのオブジェクトをTupleと呼ばれる 1 つの定義済み .Net クラスにグループ化することです。
public Tuple<Product, Type1, Type2> GetProduct()
{
return new Tuple<Proudct, Type1, Type2> (new Product(), new Type1(), new Type2());
}