我有一个方法GetProduct,它返回一个Product Object,并说,我想返回一个附加参数和对象,我该如何实现它?在下面的例子中,我如何返回'isExists'?
public Product GetProduct()
{
---
----
bool isExists = true
return new Product();
}
我不想将该参数作为产品类中的属性添加。
非常感谢任何帮助!
谢谢, 阚
答案 0 :(得分:2)
您可以使用out参数:
public Product GetProduct (out bool isExists)
{
isExists=true;
return new Product();
}
并且打电话是这样的:
bool isExists;
Product p = GetProduct (out isExists)
虽然在我看来isExists
是你可能想要在你的Product类中拥有的那种属性......
答案 1 :(得分:0)
一种方法是重写你的方法:
public bool GetProduct(ref Product product)
{
---
---
bool isExists = true;
product = new Product();
return isExists
}
这样你可以这样调用方法:
Product product = null;
if(GetProduct(ref product) {
//here you can reference the product variable
}
答案 2 :(得分:0)
为什么不使用null
?
public Product GetProduct()
{
bool isExists = true
if (isExists)
return new Product();
else
return null;
}
使用它:
var product = GetProduct();
if (product != null) { ... } // If exists
答案 3 :(得分:0)
一些建议:
看一下 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();
}
另一种选择是将所有对象分组为1个预定义的.Net类,名为元组
public Tuple<Product, Type1, Type2> GetProduct()
{
return new Tuple<Proudct, Type1, Type2> (new Product(), new Type1(), new Type2());
}