Get& amp;的目的是什么?在c#中设置方法?

时间:2016-02-16 04:27:55

标签: c# methods get set

我的大多数编程任务都只是简单地创建了与基类相关的子类。然而,随着我们的进步,强调使用get&设定方法急剧增加。我只是希望有人向我解释这些是什么,以及如何以最简单的方式使用它们。非常感谢你!

1 个答案:

答案 0 :(得分:5)

在C#中获取和设置方法是从C ++和C进化而来的,但后来被称为properties的合成糖取代

重点是你有一个变量或字段,你希望它的值是公开的,但你不希望其他用户能够改变它的值。

想象一下,你有这个代码:

public class Date
{
    public int Day;
    public int Month;
    public int Year;
}

现在看来,有人可以将Day设置为-42,显然这是一个无效的日期。那么,如果我们有什么东西阻止他们这样做呢?

现在我们创建set和get方法来规范进入和发生的事情,将代码转换为:

public class Date
{
    // Private backing fields
    private int day;
    private int month;
    private int year;

    // Return the respective values of the backing fields
    public int GetDay()   => day;
    public int GetMonth() => month;
    public int GetYear()  => year;

    public void SetDay(int day)
    {
        if (day < 32 && day > 0) this.day = day;
    }
    public void SetMonth(int month)
    {
        if (month < 13 && month > 0) this.month = month;
    }
    public void SetYear(int year) => this.year = year;
}

当然这是一个过于简单的例子,但它显示了如何使用它们。当然,您可以对getter方法进行计算,如下所示:

public class Person
{
    private string firstName;
    private string lastName;

    public string GetFullName() => $"{firstName} {lastName}";
}

将返回名字和姓氏,以空格分隔。我写这个的方式是C#6方式,称为String Interpolation

但是,由于这种模式经常在C / C ++中完成,因此C#决定使用属性更容易,你应该仔细研究它:)