请问C#如何返回多个值?

返回的多个值可能不是同一个类型.

C#的方法只能返回一个对象,不能返回多个值;
如果你必须要返回多个值,你可以使用如下的方法:
1、out ref 修饰符:使用修饰符,对方法的参数进行特殊的处理;但一般不建议这么做,这样会增加后期维护代码的难度;如果要用尽量用out;使用ref时在对值类型与引用类型时更难于理解;
2、将要返回的多个值定义与一个数据类,方法返回时返回一个该类的实例;
3、返回一个Array或List,对返回的索引进行约定,第一个值是什么,第二个值是什么(该方法极不可取)
4、将该方法与返回值放到一个类中,对你的代码进行修化;

建议:如果代码出现你说的这种情况,你可以考虑重构你的代码;尽量不要让你所描述的之种情况出现;
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-21
一,集合,如Arraylist,object[]
二,ref,out等
三,定义一个新的类,该类里包含你需要的各种信息。
第2个回答  2019-09-29
public void Main()
{
    var result = GetUser();

    System.Console.WriteLine(result.name);
    System.Console.WriteLine(result.age);
}

public (string name, int age) GetUser()
{
    return ("test", 18);
}

第3个回答  2012-04-21
返回一个集合
第4个回答  2012-04-21
函数参数中用ref或者 out ,在函数内对此类参数直接操作即可
详细的可以看帮助文档,有什么问题尽量在帮助文档里找,不要过分相信那些中文编程书籍

c#函数怎么返回两个值
在C#中让一个函数返回多个值有两种方法可以实现:第一种是使用指针变量声明函数(或者使用数组变量)第二种是使用传出参数 第一种方法:函数返回的是一个指针地址(数组地址),这个内存地址有多个变量寄存在里面。这个方法我不太会用,传地址传值我常常搞的淅沥糊涂。第二种方法:我用例子说明。首先声...

c#如何让递归函数输出多个结果
因为递归方法的特殊性,很可能不方便使用out\/ref等参数,你可以使用Tuple<>元组作为方法返回值。举例:Tuple<int,string,bool> t将声明一个t,其拥有Item1,Item2,Item3公有只读属性,用于分别存储一个int,一个string,一个bool值。注意:Tuple最小支持到Tuple<T1>,最大支持到TRest(第八个),如...

c#中想调用dll文件后return多个值怎么办
要返回多个值 用out public void 方法名(out string a,out string b){ string a="0";string b="1";} 调用接收时先声明out变量 string aa;string bb;方法名(out aa,out bb);aa就会等于“0”bb就会等于"1"其他数据类型同理

C#一个方法返回2个值
你要么返回数组,要么使用ref、out。1、返回数组方式:public int[] Fun(){...} 至于数组中哪个是面板哪个是周长只能自己约定 2、ref或out方式,你这种情况用out即可 public void Fun(out s,out l){ l=...\/\/计算周长 s=...\/\/计算面积 } 在你的方法中计算完成后将面积的结果赋值给s,周长...

C#怎样使一个函数有两个返回值
两个返回值都是int[]类型,而且长度还不一样 可以这样做,返回值类型为 List<int[]> 泛型集合 在方法里面你先把两个int[] a=new int[3];int[] b=new int[5];加到下面的泛型集合中去 List<int[]> list=new List<int[]>();list.add(a);list.add(b);return list;用的时候用foreach...

c#的方法中如何同时返回两个变量值
return 只能返回一个,实现返回两个变量效果一:return 返回String数组把str1和str2放进数组二:通过引用改变str1的值,用return返回str2.C#中,如果方法参数使用ref或out定义,则数据通过引用而不是通过值传递。

c# winform窗口如何返回值?
方法1:通过保存对象的引用调用其方法实现对子窗体的控制。方法2:通过委托,在子窗体显示之前,为委托赋值,关注主窗体的数据变化,当有当有多个窗体需要接收信息,只需要为委托继续赋值(+=)即可,实现了数据传递的解耦性。方法3:子窗体弹出来之前,注册事件,关注主窗体消息的变化,当有多个窗体需要...

C#中调用一个方法之后,想带加多个值,应该都有什么方法?
你所说的带加多个值,应该是指多个返回值,是吧。。。你可以用out关键字,或者是把你想要得到的值封装成一个类,把这个类对象返回。例子:public bool compare(int a,int b, out bool isAbigger){ if(a==b){ return ture ;} if(a>b){ isAbigger = true; } return false;} 例子不太...

c#的方法中如何同时返回两个数组变量呢 谢谢
return new double[][]{x,y};2.返回键-值对象:private KeyValuePair<double[],double[]> ...{ return new KeyValuePair<double[],double[]>(x,y);} 3.或者返回自定义的对象,不过稍显麻烦:public class InterplotionResult{ public double[] X{get;set;} public double Y{get;set;}}...

C# linq通过条件选出两个值,如何返回
语句没问题,直接 return UDName.ToList(); 即可 如果不行,把返回值类型ActionResult改为 dynamic 望采纳!

相似回答