C# 使用Tuple传递多个参数
2016-04-14 18:37
309 查看
Tuple是基于.NET Framework 4.0 及以上版本才有的。微软称它为元组,如果有三个参数那就是三元组。如
Tuple的命名空间在
程序集: mscorlib(在 mscorlib.dll 中)
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];
这样就会引起装箱拆箱的问题,效率就要降低许多….如果是一个复杂的对象,装箱拆箱是非常耗时的,所以泛型正是为此而生。
其实
下面我们来看看如何使用
//返回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
这样我们就避免了
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 和 stringpublic 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传递多个参数
相关文章推荐
- C# Interlocked 笔记
- C# Timer类详解
- C# get
- C# 单例模式的不同写法对静态变量的影响
- c#XML配置文件辅助类
- C# Socket SSL通讯笔记
- C# DataTable添加行和列
- C# 数组与 list 互相转换案例
- c#概念理解
- 适用于WebForm Mvc的Pager分页组件C#实现
- C#委托与事件的本质区别
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
- c#中的保留两位小数并且四舍五入
- C#解析错误代码至错误提示字符串
- C# WinForm 技巧:控件截图
- C#第6周实验类的继承
- C# Dictionary使用
- [C#]exchange发送,收件箱操作类
- C#禁用numericUpDown控件鼠标中键滚轮消息响应
- c# 强制退出程序