抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

在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