了解获取和设置访问者
本文关键字:访问者 设置 获取 了解 | 更新日期: 2023-09-27 18:04:15
我是个新手,正在努力学习C#的基础知识。这听起来可能很琐碎,也可能很愚蠢,但这是一个疑问。在浏览应用程序的一个源代码时,我看到了类中的一段代码
private string fname;
public string FirstName
{
get
{
return fname
}
set
{
fname = value;
}
}
有人能告诉我这是什么意思吗。我知道,当我们声明一个类时,我们使用别名FirstName
访问fname
。如果是出于某种安全目的,那又怎样?
此代码也等效于:
public string FirstName { get; set; }
这就是定义一个property
。在C#中,属性为私有fields
提供封装。
您可以在属性上编写自定义逻辑。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;
}
}
fname是一个字段,具有私有可见性,但FirstName是一个公共属性,因此它在类外可见,并且可以包含获取和设置方法内的逻辑
它被称为Properties(MSDN文章(。使用它们的原因是为了封装访问某些类字段,以便在将来需要时能够轻松地更改类行为。
这也相当于所谓的auto属性,因为此时此刻的属性不添加任何逻辑:
public string FirstName { get; set; }
get和set方法被称为访问器(getter(和赋值器(setter(-这些方法用于访问和更改对象的属性,而不允许从类外进行访问。请注意,变量fname的访问修饰符是私有的,这意味着它只能由类内的任何方法访问。
注意,get和set方法通常应该被赋予公共访问修饰符,该修饰符允许从任何外部类访问该方法。