首页 > 软件操作教程 > 编程开发 > C#
题目内容

C# 元组析构

题目答案

    元组对于从一个函数中返回多个结果非常有用。对于没有必要使用更复杂的对象,如类、结构或数组这类情况,使用元组就非常有效。下面是一个有关元组的简单示例:

    var numbers = (1, 2, 3, A, 5);

该示例定义了一个返回多个结果的函数:

private static (int max, int min, double average)

    GetMaxMin (IEnumerable<int> numbers) {...}

通过代码调用GetMaxMin()函数时,返回的结果必须由代码解析后才能显示。如果可以实现元组析构(tuple deconstruction),就没有必要编写解析结果的代码-要实现元组析构,只需要给支持该特性的任何类添加Deconstruct()函数即可,如下面的类所示:

public class Location

{

    public Location(double latitude, double longitude)

        => (Latitude, Longitude) = (latitude, longitude);


    public double Latitude { get; } 

    public double Longitude { get; }

    public void Deconstruct(out double latitude, out double longitude)

        => (latitude, longitude) = (Latitude, Longitude);

}

    Location类实现了一个表达式体(expression-bodied)构造器,它接受类型为double的两个变量(latitude和longitude),用于设置属性 Latitude 和 Longitude 的值。DeconstructO函数有两个out参数: out double latitude 和 out double longitudeo表达式将这两个out参数的值分别设置为初始化Location类时Latitude和Longitude属性的填充值。可通过将元组赋给Location的方法来访问这两个字段:

    var location = new Location(48.137154, 11.576124);

    (double latitude, double longitude) = location;

之后,就可以直接引用结果而不必对结果进行解析.

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端