设为首页 加入收藏

TOP

C#语法——元组类型
2018-07-31 09:13:00 】 浏览:103
Tags:语法 元组 类型

元组Tuple


   我们现在使用的C#语法已经可以满足日常的开发需求,但C#语法还在进行版本的更新,在创造更多更优秀的语义来让我们使用。这里介绍一下C#5.0里的提供的语法——元组。


  在C#中定义Tuple对象,转到定义查看,我们会看到如下代码


 #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
 #endregion  即该语法在.Net Framework4框架中已经可以支持了。


  元组Tuple是一种数据结构,具有特定数量和元素序列。什么意思呢?就是元组是可以存贮多种类型的对象,可以想象一下当一个函数拥有多个不同类型的返回值时,我们除了定义了一个返回值以外,还要定义多个out或ref类型返回值才能解决这个需求;当然我们也可以定义一个对象保存多个返回值。但现在我们多了一个解决方案,定义返回值为一个元组,就解决了一切。


  元组Tuple是可以存贮多种类型的数据的。NET Framework 直接支持具有 1 到 7 元素的元组。 此外,您可以创建由嵌套中的元组对象的元组的八个或多个元素Rest属性Tuple<T1,?T2,?T3,?T4,?T5,?T6,?T7,?TRest>对象。


  元组常用四种方法︰


  1,用来表示一组数据。 例如,一个元组可以表示的数据库记录,并且其组件可以表示每个字段的记录。


  2,若要提供轻松访问和数据集的操作。


  3,out参数 (在 C# 中) 或ByRef参数 (在 Visual Basic 中)。


  4,若要将多个值传递给通过单个参数的方法。 例如,Thread.Start(Object)方法只有一个参数,允许你提供一个线程在启动时执行的方法的值。如果你提供Tuple<T1,?T2,?T3>对象作为方法自变量,则可以提供有三个项的数据的线程的启动例程。


class Program
  {
      static void Main(string[] args)
      {
          var tuple = new Tuple<string, int, int, int>(
                            "Kiba", 00001, 00002,
                            00003);
 
          Console.WriteLine(tuple.Item1);
          Console.WriteLine(tuple.Item2);
          Console.WriteLine(tuple.Item3);
          Console.WriteLine(tuple.Item4);
 
          var tupleCalss = new Tuple<A, B>(
                        new A(), new B());
          Console.WriteLine(tupleCalss.Item1.Name);
          Console.WriteLine(tupleCalss.Item2.Name);
          Console.ReadKey();
      }
  }
  public class A
  {
      public string name = "A";
 
      public string Name { get => name; set => name = value; }
  }
  public class B
  {
      public string Name = "B";
  }<br>}<br><br><br>


输出结果
Kiba
1
2
3
A
B


--------------------------------------------------------------------------------


【PS:这里使用的目标框架是.net framework 4.0 ,我们可以看到属性的声明如下,即4.0已经支持=>模式的属性设置了。】


public string name = "A";
 
public string Name { get => name; set => name = value; }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C#语法——await与async的正确打.. 下一篇Golang vs PHP 之文件服务器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目