我的应用程序具有n层体系结构。我有不同的层(业务逻辑和数据链接和GUI)。我正在使用一些通用类将数据从一层传递到另一层。我有一个只有两个变量RetrnValueCls
和Return value
的类(例如Return Message
)。当我将数据从一层传递到另一层时,我需要将此Return Value
类与具有其他变量的另一类(例如MasterItemsCls
)一起返回。
以下是方法
public MasterItemsCls GetMasterItemsMDL()
{
/* Does some computations and assign them to
attributes of MasterItemsCls and pass it other methods in other layers. */
}
public ReturnValueCls GetMasterItemsMDL()
{
/* Does some computations and assign them to
attributes of ReturnValueCls and pass it other methods in other layers. */
}
我想立即返回上述两个类(
MasterItemsCls
&ReturnValueCls
)作为方法GetMasterItemsMDL
的返回类型,而且我也不想合并两个类。请让我知道我是否有办法。 最佳答案
函数只能返回一个值,因此从这个意义上讲,答案是否定的。
函数可以具有out
参数,因此您可以通过out
参数返回两个值之一。
在我看来,处理此问题的最干净方法是使用第三类来包含其他两个类。 Tuple<T1,T2>
可用于此目的:
public Tuple<MasterItemsCls, ReturnValueCls> MyFunction()
{
// Do stuff
return new
Tuple<MasterItemsCls, ReturnValueCls>(myMasterItemsCls, myReturnValueCls);
}
Tuple<T1,T2>
的一个缺点是,这些值以不太直观的Item1
和Item2
的形式访问。如果您不想使用
Tuple<T1,T2>
,则可以轻松创建自己的类以包含MasterItemsCls
和ReturnValueCls
。那是我的首选方法。