在构造函数中设置字段与 { get;set;} 属性

2024-02-14

给定一个类:

public class NicePeople {
     public string VNP_Name;
     public int VNP_Age;
     public float VNP_Score;

     public NicePeople(string inName, int inAge, float inScore){
         VNP_Name = inName;
         VNP_Age = inAge;
         VNP_Score = inScore;
    }
}

然后你像这样使用它:

NicePeople nicePerson = new NicePeople("Joe", 55, 1.6f);

这和:有什么区别吗?

public class NicePeople {
     public string VNP_Name {set;get;}
     public int VNP_Age {set;get;}
     public float VNP_Score {set;get;}        
}

如果不是,构造函数是否仅适用于您想要做一些额外工作(例如检查有效值等)并且完全不需要基本内容的情况?


这里真正的问题是何时使用构造函数参数与属性。其他人已经提到了原因。这是另一张。

当没有这些值就无法创建类实例时,请使用参数化构造函数。可以使用属性来设置实例的任何可选属性。考虑一个Person班级。任何人至少需要一个名字才能被识别。然而,年龄可以是可选信息。

public class Person {
    public Person(string name) {
        Name = name;
    }

    public string Name { get; private set; }
    public int Age { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在构造函数中设置字段与 { get;set;} 属性 的相关文章

随机推荐