您的位置:首页 > 编程语言 > C#

C# 使用Tuple传递多个参数

2016-04-14 18:37 309 查看
Tuple是基于.NET Framework 4.0 及以上版本才有的。微软称它为元组,如果有三个参数那就是三元组。如
Tuple(T1, T2, T3)


Tuple的命名空间在
System
很短吧,也就是说只要是基于.NET Framework 4.0 及以上版本的,创建项目就可以直接在Visual Studio中敲出来。

程序集: mscorlib(在 mscorlib.dll 中)

为什么要使用Tuple

来!先看看下面这个方法。

public bool MyMethod(out string msg)

{

msg = "www.wxzzz.com";

return true;

}

这个方法很简单,意图就是返回两个参数。这个是我们经常遇见的一个情况,为了返回两个或者多个参数而使用多个out..显然使用起来挺麻烦的。

也许有朋友说使用如下类似的代码不就可以了?

public object[] MyMethod();

//调用

object[] array = MyMethod();

bool a = (int)obj[0];

string b = (string)obj[1];

这样就会引起装箱拆箱的问题,效率就要降低许多….如果是一个复杂的对象,装箱拆箱是非常耗时的,所以泛型正是为此而生。

使用Tuple传递多个参数

Tuple提供了一共9个类,其实都是差不多的,只是参数不同。如下图所示





其实
Tuple
有很多重载的类,最多可以传入8个参数。官方的建议是如果大于8个参数的话,第八个参数你可以传入
Tuple
。就是以
Tuple
包含
Tuple
的用法啦。

下面我们来看看如何使用
Tuple
返回2个参数吧。

//返回2个参数 bool 和 string

public Tuple<bool,string> MyMethod()

{

return new Tuple<bool, string>(true, "www.wxzzz.com");

}

//使用

Tuple<bool,string> tup = MyMethod();

// tup.Item1 的值类型是bool类型,值是 true

// tup.Item2 的值类型是string类型,值是"www.wxzzz.com

这样我们就避免了
object
装箱拆箱的问题,提高了代码的效率,而且使用起来非常方便。

C# 使用Tuple传递多个参数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: