为什么使用get;并设置;在没有任何参数的属性中
本文关键字:参数 任何 属性 get 设置 为什么 | 更新日期: 2023-09-27 18:32:13
我最近一直在从书本中学习 C#,在解释属性后,我注意到它们使用的属性如下
public int AlertLevel { get; private set; }
我不明白你为什么要不通过任何论据就这样做?提前感谢您提供任何信息。
属性实际上是 C#
中的方法。您在代码中显示的是自动实现的属性。这是一种酸糖:
// this backing field is generated by compiler
int alertLevel;
public int AlertLevel
{
get { return alertLevel; }
private set { alertLevel = value; }
}
这是另一个语法糖:
int alertLevel;
public int getAlertLevel()
{
return alertLevel;
}
private void setAlertLevel(int value)
{
alertLevel = value;
}
所以你写更少的代码,你会得到相同的行为。这就是重点。编译器为您完成艰苦的工作。
它们被称为自动属性。 这是句法糖。
它相当于:
private int alertLevel;
public int AlertLevel
{
get { return alertLevel; }
private set { alertLevel = value; }
}
它允许从其他类访问值,但只能从类内部设置。
这样做
是为了将元素声明为具有辅助功能设置的可编辑属性,因此在集合上声明private
。 您也可以在任何辅助属性上显式设置get;
和set;
,并具有相同的效果。 这只是键入完整 getter-setter 关系的更快方法。
你列出的例子实际上非常方便。 如果您不希望其他类能够修改此属性,这比以下简单得多:
private int alertLevel;
public int AlertLevel
{
get
{
return alertLevel;
}
}
另一件事是设计器视图将识别属性并在智能感知中公开它们。