了解获取和设置访问者

时间:2013-03-17 16:50:49

标签: c# asp.net

我是新手,我正在努力学习C#的基础知识。这可能听起来很微不足道,可能是愚蠢的,但这是一个疑问。在浏览应用程序的一个源代码时,我在类

中看到了一段代码
private string fname;
public string FirstName
{
    get
    {
       return fname
    }
    set
    {
       fname = value;
    }
}

任何人都可以告诉我这意味着什么。我们了解到,当我们宣布课程时,我们会使用别名fname访问FirstName。如果出于某种安全目的那么呢?

5 个答案:

答案 0 :(得分:6)

此代码也相当于:

public string FirstName { get; set; }

这样做是为了定义property。在C#属性中为私有fields提供封装。

答案 1 :(得分:3)

您可以在自己的财产上编写自定义逻辑。 F.e,一些验证:

public string FirstName
{
    get
    {
       return fname;
    }
    set
    {
       if (value.Count(s => Char.IsDigit(s)) > 0)
       {
           throw new Exception("Only letters allowed");
       }
       fname = value;
    }
}

答案 2 :(得分:2)

fname是一个字段,具有私有可见性,但FirstName是一个公共属性,因此它将在类外部可见,并且可以在get和set方法中包含逻辑

答案 3 :(得分:0)

它叫做属性(MSDN article)。使用它们的原因是封装访问某些类字段,以便将来能够轻松更改类行为。

这也等同于所谓的自动属性,因为此时的属性不会添加任何逻辑:

public string FirstName { get; set; }

答案 4 :(得分:0)

get和set方法称为访问器(getters)和mutators(setter)这些方法用于访问和改变对象的属性,而不允许从类外部进行访问。 看到变量fname的访问修饰符是私有的,这意味着只能通过类中的任何方法访问它。

并注意get和set方法通常应该使用public access修饰符,该修饰符允许从任何外部类访问该方法。