zoukankan      html  css  js  c++  java
  • 元组

    析构元组

    var (name, address, city, zip) = contact.GetAddressInfo();

    析构用户定义类型

    通过实现一个或多个 Deconstruct方法来析构该类型的实例

    public void Deconstruct(out string fname, out string mname, out string lname)

    使用扩展方法析构用户定义的类型

    该方法返回 void,且要析构的每个值由方法签名中的 out 参数指示

    public static void Deconstruct(this PropertyInfo p, out bool isStatic,
                                       out bool isReadOnly, out bool isIndexed,
                                       out Type propertyType)
    
    PropertyInfo prop = dateType.GetProperty("Now");
    var (isStatic, isRO, isIndexed, propType) = prop;

    推断元组元素名称

    元组元素的名称可通过在初始化元组时使用的变量进行推断:

    int count = 5;
    string label = "Colors used in the map";
    var pair = (count, label); // element names are "count" and "label"

    支持 == 和 !=

    两个元组具有相同数量的元素,且对于每个元组位置,可以使用 == 和 != 运算符对左右侧元组操作数中的相应元素进行比较

    (int a, byte b) left = (5, 10);
    (long a, int b) right = (5, 10);
    Console.WriteLine(left == right);  // output: True
    Console.WriteLine(left != right);  // output: False
    
    var t1 = (A: 5, B: 10);
    var t2 = (B: 5, A: 10);
    Console.WriteLine(t1 == t2);  // output: True
    Console.WriteLine(t1 != t2);  // output: False

    == 和 != 操作不会考虑元组字段名称。

    == 和 != 运算符将以短路方式对元组进行比较。  

      

    在匿名类型和元组类型之间进行选择

    主要区别
    “属性”访问修饰符类型自定义成员名称析构支持表达式树支持
    匿名类型 internal class ✔️ ✔️
    Tuple public class ✔️
    ValueTuple public struct ✔️ ✔️

    在元组和匿名类型之间进行选择时,需要考虑几个因素。 一般来说,如果不使用表达式树,并且你熟悉元组语法,请选择 ValueTuple,因为它们提供可灵活命名属性的值类型。 如果使用表达式树并且想要命名属性,请选择匿名类型。

     ValueTuple 类型是可变的,而 Tuple 是只读的。  

  • 相关阅读:
    odoo开发笔记 -- 新建模块扩展原模块增加菜单示例
    div内部div居中
    Css中!important的用法
    SQLServer日期格式转换
    jquery中innerheight outerHeight()与height()的区别
    简单明了区分escape、encodeURI和encodeURIComponent
    PDF预览之PDFObject.js总结
    PDFObject.js,在页面显示PDF文件
    System.IO.Directory.GetCurrentDirectory与System.Windows.Forms.Application.StartupPath的用法
    angular 模块 @NgModule的使用及理解
  • 原文地址:https://www.cnblogs.com/yetsen/p/13428211.html
Copyright © 2011-2022 走看看