在C#中,属性是一种特殊的类成员,用于封装类的字段(fields)。属性提供了一种简单的方式来访问和修改类的私有字段,同时也提供了一些额外的功能,如计算属性(computed properties)和只读属性(read-only properties)。
定义属性
定义属性的语法如下:
访问修饰符 类型 名称
{
get { return someValue; }
set { someValue = value; }
}
其中,get
块和set
块都是可选的,但至少需要一个。get
块用于获取属性的值,而set
块用于设置属性的值。
例如,下面的代码定义了一个名为Name
的属性:
public string Name
{
get { return _name; }
set { _name = value; }
}
在这个例子中,Name
属性被定义为公共的(public
),它的类型为string
,并且它的值被存储在私有字段_name
中。get
块返回_name
的值,而set
块将传入的值赋给_name
。
计算属性
有时候,属性的值并不是存储在类的字段中,而是通过一些计算得到的。这时,我们可以定义一个计算属性(computed property)来获取这个值。
例如,下面的代码定义了一个名为FullName
的计算属性:
public string FullName
{
get { return _firstName + " " + _lastName; }
}
在这个例子中,FullName
属性被定义为公共的(public
),它的类型为string
,但它并没有一个对应的私有字段。相反,get
块通过将_firstName
和_lastName
连接起来来计算属性的值。
只读属性
有时候,我们希望属性的值只能在对象创建时被设置,并且在对象的整个生命周期中不能被修改。这时,我们可以定义一个只读属性(read-only property)。
例如,下面的代码定义了一个名为Id
的只读属性:
public int Id
{
get { return _id; }
}
在这个例子中,Id
属性被定义为公共的(public
),它的类型为int
,并且它的值被存储在私有字段_id
中。由于它只有get
块,所以它是只读的,不能在代码中被修改。
总结
属性是一种特殊的类成员,用于封装类的字段。它们提供了一种简单的方式来访问和修改类的私有字段,同时也提供了一些额外的功能,如计算属性和只读属性。在C#中,我们可以使用get
块和`set