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