C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了是否有可能在C#7.0中重载解构器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在C#7.0中,我可以为我的类声明以下解构器:
public class Customer
{
    public String FirstName { get; }
    public String LastName { get; }
    public String Email { get; }

    public Customer(String firstName,String lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }

    public void Deconstructor(out String firstName,out String lastName,out String company)
    {
        firstName = FirstName;
        lastName = LastName;
        company = "Nop-Templates";
    }

    public void Deconstructor(out String firstName,out String lastName)
    {
        firstName = FirstName;
        lastName = LastName;
    }
}

我想在desconstructor中使用我们的变量而不是直接返回一个元组的想法是这样你可以有不同的解构函数重载.但是,我似乎无法将对象解构为三个变量.我只能将它解构为两个变量.

例如,这不编译:

(String firstName,String lastName,String company) = customer;

我收到这个错误

“无法将’2’元素的元组解构为’3’变量.”

但这确实有效:

(String firstName,String lastName) = customer;

我错过了什么?

@L_450_5@

你已经调用你的方法Deconstructor,而不是Deconstruct.此外,您不能在两个元组中重新声明firstName和lastName.进行这些更改,以下几行代码都编译得很好:
var customer = new Customer("a","b");
(String firstName1,String lastName1,String company) = customer;
(String firstName2,String lastName2) = customer;

大佬总结

以上是大佬教程为你收集整理的是否有可能在C#7.0中重载解构器?全部内容,希望文章能够帮你解决是否有可能在C#7.0中重载解构器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。