元组的解构是C#内置支持的。

        var countrInfo = ("Malawi", "Lilongwe", io);
(string name, string ii, var gdpPerCapit) = countrInfo;

对于非元组类型的解构,C# 不提供内置支持。但是,用户作为类、结构或接口的创建者,

我们如何实现自定义 类或结构 的解构

可通过实现Deconstruct 方法来析构该类型的实例。该方法返回 void,且要析构的每个值由方法签名中的 out 参数指示。

    public struct Point
{
public Point(int x, int y) => (X, Y) = (x, y); public int X { get; }
public int Y { get; }
public override string ToString() => $"X:{X} Y:{Y}";
public void Deconstruct(out int x, out int y) => (x, y) = (X, Y); } static void Main()
{
Point io = new(1,2); (var name, var gdpPerCapit) =io;
Console.WriteLine(gdpPerCapit);
}

最新文章

  1. 通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录
  2. PYTHON之全局变量
  3. 【C#】OOP之多态那点事
  4. Arduino中的setup()和loop()函数
  5. arcgis中使用excel中x,y坐标创建点问题
  6. 漫游Kafka入门篇之简单介绍
  7. Hadoop学习总结之三:Map-Reduce入门
  8. view的onFinishInflate()何时调用的?
  9. VS清除缓存
  10. Windows 8 Hyper-V虚拟机功能(转载)
  11. 构建微服务:Spring boot
  12. 统计学习方法学习(四)--KNN及kd树的java实现
  13. chrome下positon:fixed无效或抖动的解决办法
  14. 利用神经网络进行网络流量识别——特征提取的方法是(1)直接原始报文提取前24字节,24个报文组成596像素图像CNN识别;或者直接去掉header后payload的前1024字节(2)传输报文的大小分布特征;也有加入时序结合LSTM后的CNN综合模型
  15. Java 中各种空(""、\u0000、null)的区别?
  16. Linux 开启定时计划任务
  17. 使用Narrator读取RichTextBlock内容
  18. Selenium使用总结(Java版本)
  19. python---补充django中文报错(2),Django3.5出错
  20. Java并发编程原理与实战三十:CountDownLatch与CyclicBarrier 区别

热门文章

  1. 适配器模式(Adapter模式)
  2. 用socket写一个简单的服务器
  3. glibc-2.18升级
  4. Atcoder ARC-070
  5. samb建立共享文件夹,windows报无法访问没有访问权限
  6. UDP数据包最大传输长度
  7. Android App发布遇到的问题总结【转】
  8. Mybatis foreach的用法
  9. 【BZOJ2337】XOR和路径(高斯消元)
  10. vue中的钩子函数