zoukankan      html  css  js  c++  java
  • C# 使用Tuple传递多个参数

    Tuple是基于.NET Framework 4.0 及以上版本才有的。微软称它为元组,如果有三个参数那就是三元组。如 Tuple(T1, T2, T3)

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

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

    为什么要使用Tuple

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

    1. public bool MyMethod(out string msg)
    2. {
    3.     msg = "www.wxzzz.com";
    4.     return true;
    5. }

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

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

    1. public object[] MyMethod();
    2.  
    3. //调用
    4. object[] array = MyMethod();
    5. bool a = (int)obj[0];
    6. string b = (string)obj[1];

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

    使用Tuple传递多个参数

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

    Tuple

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

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

    1. //返回2个参数 bool 和 string
    2. public Tuple<bool,string> MyMethod()
    3. {
    4. return new Tuple<bool, string>(true, "www.wxzzz.com");
    5. }
    6.  
    7. //使用
    8. Tuple<bool,string> tup = MyMethod();
    9.  
    10. // tup.Item1 的值类型是bool类型,值是 true
    11. // tup.Item2 的值类型是string类型,值是"www.wxzzz.com

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

    C# 使用Tuple传递多个参数

  • 相关阅读:
    JVMTIAgent
    Java 虚拟机编程接口JVMIT
    Java调试平台体系JPDA
    什么是缓存
    2019第49周日
    什么是你拥有的资本
    java里的static/final含义
    Java语言和JVM的使用说明书
    画图前端:mermaid。时序图/类图/甘特图/流程图/状态图/饼图。类似工具:Typora
    java通过下划线数字字面量增加可读性:10_00_00表示100000
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5392234.html
Copyright © 2011-2022 走看看