使用默认值字段的构造函数重载

constructor overloading with default value fields

提问人:Sara 提问时间:9/11/2021 更新时间:9/11/2021 访问量:92

问:

如何从字段中的初始值发送构造函数中的默认参数

    private readonly string name= "Test";
    private readonly int id= 1;

    public Demo(string name, int id)
    {
            this.name= name;
            this.id= id;
    }

    public Demo(int id):this(this.name,id)
    {
    }

我想从字段中发送名称的默认值,我知道我可以通过设置它,但我想为什么要在构造函数中再次写入默认值

   public Demo(int id):this("Test",id)
    {
    }
C# 构造函数 重载

评论

0赞 RB. 9/11/2021
为什么不直接设置第二个构造函数,而不调用第一个构造函数呢?id
0赞 Sweeper 9/11/2021
@RB。也许实际代码中的第一个重载除了设置属性之外还会做其他事情,而 OP 不想在第二个重载中重复该代码?
0赞 Sara 9/11/2021
@Sweeper确切地说,我想要重载,我不需要将第一个承包商中的代码重复给另一个承包商
0赞 Sweeper 9/11/2021
实际上,为什么要在声明中初始化只读字段呢?删除 和 ,现在您可以不重复 .= "Test"= 1public Demo(int id):this("Test",id)"Test"
0赞 Sara 9/12/2021
@Sweeper但是,如果客户端使用两个参数创建对象,则无法设置初始值,因为我们使用一个参数在承包商中设置值

答: 暂无答案