gpt4 book ai didi

c# - 在 C# 中,是否可以将两个不同的类作为返回类型从一层传递到另一层?

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:59 25 4
gpt4 key购买 nike

我的应用程序具有 n 层架构。我有不同的层(业务逻辑和数据链接和 GUI)。我正在使用一些通用类将数据从一层传递到另一层。我有一个类(例如 RetrnValueCls),它只有两个变量 Return valueReturn 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> 的一个缺点是这些值被访问为相当不直观的 Item1Item2 .

如果你不想使用Tuple<T1,T2> , 很容易创建自己的类来包含 MasterItemsClsReturnValueCls .这是我的首选方法。

关于c# - 在 C# 中,是否可以将两个不同的类作为返回类型从一层传递到另一层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15437726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com