C# 使用Tuple传递多个参数
来源:互联网 发布:手机服务器端口 编辑:程序博客网 时间:2024/06/06 01:07
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
返回4个参数吧。
public class HomeController : Controller{ public ActionResult Index() { List<string> list=new List<string>(); //接收TupleTest()方法的返回值 Tuple<int, string, int, List<string>> result = TupleTest(); int a = result.Item1; string b = result.Item2; int c = result.Item3; List<string> d = result.Item4; d.ForEach(r => list.Add(r)); return View(); } public Tuple<int, string, int, List<string>> TupleTest() { //返回了4个值 return new Tuple<int, string, int, List<string>>(5, "中国", 6, new List<string>() { "美国"}); } }
0 0
- C# 使用Tuple传递多个参数
- C# params传递多个参数
- JSP 使用URL传递多个参数
- MVC控制器传递多个Model到视图,使用ViewData, ViewBag, 部分视图, TempData, ViewModel, Tuple
- C# 中传递多个参数给多线程
- 在gridview使用HyperLinkField传递多个参数
- 在gridview使用HyperLinkField传递多个参数
- 使用angularjs事件多个参数的传递
- 如何在前台使用<%#eval( )%> 传递多个参数
- UIButton 传递多个参数的方法 -----使用关联函数
- 关于传递多个参数时使用构建器demo
- Unity 发布的 WenGL 使用SendMessage传递多个参数
- Unity 发布的 WebGL 使用SendMessage传递多个参数
- 使用Map向SQL中传递多个参数
- showModalDialog传递多个参数
- 多个参数的传递
- HyperLink传递多个参数
- setTimeout传递多个参数
- 第十五周 oj训练 字符串处理new
- 亲测 logminer挖掘
- 在项目中使用spring-framework-bom统一管理jar包版本
- Java并发编程:Thread类的使用
- 树莓派中文输入法
- C# 使用Tuple传递多个参数
- 动态规划:从新手到专家
- 修改树莓派更新源及设置代理配置
- Java 学习笔记 Day012
- Leetcode017--链表k个结点一组翻转
- python标准库之sys
- 说到程序员们的心里去了!向改变世界的程序员致敬
- 四种线程池的使用
- Could not instantiate provider org.tigris.subversion.subclipse.core.svnnature for project