简写访问器和mutator

本文关键字:mutator 写访问 | 更新日期: 2023-09-27 18:15:14

我正在学习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; }
    }
}

简写访问器和mutator

是的,当你有一个自定义的getter和setter函数时,Method2是一种方法。默认情况下,当你使用Method1时,会有一个默认的私有属性在内部处理。详情请参考此网址

示例:

string _name;
public string Name 
{
    get => _name;
    set => _name = value;
}

是,方法1是方法2的快捷方式。我建议默认使用方法1。当您需要更多功能时,请使用方法2。还可以为get和set指定不同的访问修饰符。