我正在学习C#,并学习如何将字段设为私有,并使用Getter和Setter公开方法而不是字段值。
在方法1和方法2中的get; set;
是否等同?例如,其中一个是另一个的简写吗?
class Student
{
// Instance fields
private string name;
private int mark;
// Method 1
public string Name { get; set; }
// Method 2
public int Mark
{
get { return mark; }
set { mark = value; }
}
}
最后,当您想要在获取或设置值之前执行计算时,例如将值转换为百分比或执行验证时,是否会使用方法2?例如:
class Student
{
// Instance fields
private string name;
private double mark;
private int maxMark = 50;
// Method 1
public string Name { get; set; }
// Method 2
public double Mark
{
get { return mark; }
set { if ( mark <= maxMark ) mark = value / maxMark * 100; }
}
}