我知道这是一个曾经被问过的重复问题,但是我发现的所有问题一般都是针对C#的,但是我不支持Unity,而我认为Unity最多支持.NET 4.6而不是最新的框架?>
如果某几个类别的布尔值均为true,则我有一个传递多个变量的函数。
void CheckData()
{
if (int 1 > int 2)
{
otherScript.Function(var 1, var 2, var 3)
}
}
该函数查询SQL数据库并根据SQL数据定义输入的变量。有没有简单的方法可以返回多个变量的值?从我一直在进行的研究来看,似乎可以在较新版本的.NET中执行此操作,但是不支持Unity,因为它不支持元组?
我还读过一些人说可以返回一个数组,然后对函数外部的数据进行排序,但是后来我读过其他人说相反的话,发现的信息不一致。
有人可以让我知道实现这一目标的最简单方法吗?如果需要的话,我将对每个变量进行硬编码并手动进行,但是我试图保持代码整洁,因此,如果有更好的方法,我想在花费数小时进行不正确的编码之前想知道。 / p>
编辑:建议的重复文章链接显示了如何通过制作另一个类来实现此目的,但是我正在寻找一个更简单的解决方案,下面对此进行了解答。谢谢。
答案 0 :(得分:5)
解决方案仍然是元组。
但不支持Unity,因为它不支持元组?
Unity现在支持元组,您需要Unity 2017或更高版本才能使用它。转到编辑-> 项目设置->播放器-> 其他设置-> 配置- -> 脚本运行时版本-> .NET 4.x等效。
重新启动Unity和Visual Studio,Tuple
应该对您可用。
如果您仍在使用低于2017的Unity版本,则应使用out参数甚至使用List来填充参数中的数据。
答案 1 :(得分:2)
答案 2 :(得分:1)
如果tuple
和out
对您不起作用(我认为两者都是更好的选择),那么包装器类又如何呢?注意:tuple
的 实际上是什么,除了它们是泛型类型之外,不是。
public class Wrapper {
var a, b, c;
}
public Function(var a, var b, var c ):Wrapper
{
Wrapper outobj = new Wrapper();
outobj.a = 1;
outobj.b = 2;
outobj.c = 4;
return outobj;
}