回答
嗯,你可以使用:
- 一个自定义的类/结构/类型,包含所有你的价值观
out
参数
即:
class MyValues
{
public string Val1 { get; set; }
public int Val2 {get; set; }
}
public MyValues ReturnMyValues();
或
public void ReturnMyValues(out string Val1, out int Val2);
是可以创建一个新类型,将包含多个属性,然后返回此类型:
public MyType MyMethod()
{
return new MyType
{
Prop1 = "foo",
Prop2 = "bar"
};
}
是的,out
关键字:
public void ReturnManyInts(out int int1, out int int2, out int int3)
{
int1 = 10;
int2 = 20;
int3 = 30;
}
然后调用它像这样:
int i1, i2, i3;
ReturnManyInts(out i1, out i2, out i3);
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(i3);
其中输出:
10
20
30
编辑:
我看到了很多帖子所提出的建议,以创建自己的类此。这是没有必要的,因为.net为你提供了一个类来完成他们已经说过的事情。 Tuple
类。
public Tuple<int, string, char> ReturnMany()
{
return new Tuple<int, string, char>(1, "some string", 'B');
}
那么你可以像这样检索:
var myTuple = ReturnMany();
myTuple.Item1 ...
myTuple.Item2 ...
有通用的重载,所以你可以在你的元组有多达8种独特。
另外,'Tuple.Create'方法可以推断出类型:'返回Tuple.Create(1,“some string”,'B');' – 2010-05-27 06:31:49
请注意,Tuple是.NET 4.0的一个新特性,吉布可能还没有(尚)。 – 2010-05-27 06:34:42
描述符类或结构。你必须把它放在某个地方,因为一个方法只能返回一个值是合乎逻辑的。或者,你可以使用或参考,但我会去返回一个类。
顺便说一句,你不使用集合?
如果您使用的是.NET 4。0您可以使用generic Tuple类之一从方法调用中返回多个值。静态的Tuple类提供了创建Tuple对象的方法。所以你不必为该方法定义自己的返回类型。
public Tuple<string,int> Execute()
{
return new Tuple<string,int>("Hello World", 2);
}
只是一个小点:所有8个Tuple类型在C#4.0中都是通用的。 – Kobi 2010-05-27 06:38:01
public int Method Name(out string stringValue, out int intValue)
{
///
Method goes here
///
return intVaraible
}
在这里,你会得到3返回值 1. stringValue的 2的intValue 3.了IntVariable
- 1. 我应该返回一个NSMutableString返回NSString的方法
- 2. 从方法中返回多个值
- 3. Crystal方法返回多个值
- 4. java方法返回多个值
- 5. 的java:从方法返回多个值
- 6. iOS方法返回多个值NSDictionary
- 7. 从单一方法返回多个值
- 8. Android - 从方法返回多个值
- 9. java方法返回null,但不应该
- 10. 该方法说“应该返回一个整数”
- 11. select元素应该返回2个值
- 12. navigationController.pushViewController该方法返回undefined
- 13. “__enter__”方法的返回值应该始终为python中的“self”
- 14. 这种方法应该返回什么值?
- 15. 我应该在我的方法中返回Collections.addAll()的值吗?
- 16. 错误:void方法“撤消:”应该没有返回值
- 17. 什么时候应该使用方法来返回值?
- 18. 为什么java的主要方法不应该有返回值?
- 19. 将if语句放在应该返回int值的方法内
- 20. Java Netbeans:方法返回值应该用分号来检查
- 21. 方法,该方法返回0
- 22. 方法返回值
- 23. LINQ到SQL返回“子查询返回多个值”,但它不应该
- 24. 返回多个值
- 25. 返回多个值
- 26. 的WebService方法返回“未定义”回JavaScript的,即使它应该返回一个值
- 27. 我应该返回一个像console.log()这样的方法吗?
- 28. 接口方法应该返回一个自定义对象吗?
- 29. C#方法不返回一个唯一的值,当它应该是
- 30. 返回多次返回方法
能否请您扩大 “多值”?这是你的返回值的常数吗?它们是逻辑链接的吗?他们代表什么?它们是否属于同一类型? – Kobi 2010-05-27 06:30:06
[我怎样才能从C#中的函数返回多个值?](http://stackoverflow.com/questions/748062/how-can-i-return-multiple-values-from-a-function-in -c) – 2016-06-03 23:18:56