如何从C#中的方法返回多个值
我有以下方法:
public static ?? GetType6() { var name = "x"; var age = 1; return ?? }
这样称呼:
var ?? = GetType6();
我希望能够调用该方法并取回名称和年龄。 我想创建一个匿名对象,但如果我这样做,我怎么能解码它?
最简单的方法是返回一个Tuple
(从.NET 4开始可用):
public static Tuple GetType6() { var name = "x"; var age = 1; return Tuple.Create(name, age); }
您可以通过以下方式读取值:
var pair = GetType6(); string name = pair.Item1; int age = pair.Item2;
当然,更健壮,可读和可维护的是创建一个类:
class User { public string Name { get; set; } public int Age{ get; set; } } public static User GetUser() { var name = "x"; var age = 1; return new User{Name = name, Age = age }; } var user = GetUser(); string name = user.Name; int age = user.Age;
你为什么不创建一个类型来容纳你想要的东西?
public static MyType GetType6() { MyType type = new MyType(); type.name = "x"; type.age = 1; return type; } class MyType { public string name {get;set;} public int age {get;set;} public MyType() { } }
你可以使用元组:
public Tuple GetMultipleValue() { return new Tuple(1,2); }
您可以在此处获得更多详细信息: http : //msdn.microsoft.com/en-us/library/system.tuple.aspx
使用out
关键字,可以如下:
public static string GetType6(out int age) { var name = "x"; var age = 1; return name }
注意:使用它是不好的做法。
使用dynamic
作为返回类型:
public static dynamic GetType6() { var name = "x"; var age = 1; return new { name = "x", age = 1 }; }
方法调用:
var v = GetType6();
问题: C#中方法的变量返回类型
MSDN: http : //msdn.microsoft.com/en-us/library/vstudio/dd264741.aspx
你可以使用匿名类型。 像这样。
public static object GetType6() { return new { name = "x", age = 1 }; }
要读取值,必须使用reflection。
var foo = GetType6(); var name = foo.GetType().GetProperty("name").GetValue(foo, null); var age = foo.GetType().GetProperty("age").GetValue(foo, null);
虽然这是一种非常肮脏的方式来完成你所需要的东西。
上述就是C#学习教程:如何从C#中的方法返回多个值分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1004767.html