给定一个类:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你像这样使用它:
NicePeople nicePerson = new NicePeople("Joe", 55, 1.6f);
Run Code Online (Sandbox Code Playgroud)
那和:有什么区别吗?
public class NicePeople {
public string VNP_Name {set;get;}
public int VNP_Age {set;get;}
public float VNP_Score {set;get;}
}
Run Code Online (Sandbox Code Playgroud)
如果不是,构造函数是否仅用于您想要做一些额外工作(例如检查有效值等)并且完全不需要基本内容?
这里真正的问题是何时使用构造函数参数与属性。其他人已经提到了原因。这是另一个。
如果没有这些值就无法创建类实例,请使用参数化构造函数。可以使用属性设置实例的任何可选属性。考虑一个Person类。任何人都至少需要一个名字来识别。但是,年龄可以是可选信息。
public class Person {
public Person(string name) {
Name = name;
}
public string Name { get; private set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7003 次 |
| 最近记录: |