我是新手,我正在努力学习C#的基础知识。这可能听起来很微不足道,可能是愚蠢的,但这是一个疑问。在浏览应用程序的一个源代码时,我在类
中看到了一段代码private string fname;
public string FirstName
{
get
{
return fname
}
set
{
fname = value;
}
}
任何人都可以告诉我这意味着什么。我们了解到,当我们宣布课程时,我们会使用别名fname
访问FirstName
。如果出于某种安全目的那么呢?
答案 0 :(得分:6)
答案 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修饰符,该修饰符允许从任何外部类访问该方法。