📅  最后修改于: 2023-12-03 14:53:38.715000             🧑  作者: Mango
在C#中,属性(Property)是一种用于访问和操作类或结构的成员变量的一种方式。它们允许程序员通过公共接口隐式控制该变量的读取和写入。
属性的声明包括两个访问器方法,即get和set。get访问器用于获取属性的值,而set访问器用于设置属性的值。以下是属性的基本声明语法:
public data_type PropertyName
{
get { return propertyName; }
set { propertyName = value; }
}
其中,public
表示属性可以从任何地方访问,data_type
是属性的数据类型,PropertyName
是属性的名称。
下面通过一个示例来说明属性的使用方法:
public class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
在上述示例中,Person
类有两个属性Name
和Age
,它们分别对应私有成员变量name
和age
。通过使用属性来访问这些成员变量,我们可以在设置属性值时添加一些额外逻辑。
C# 还提供了一种简化属性声明的语法,称为自动实现属性。通过自动实现属性,编译器会为属性提供一个默认的实现,不需要显式定义私有成员变量。以下是自动实现属性的语法:
public data_type PropertyName { get; set; }
使用自动实现属性的示例:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
在这个示例中,Person
类有两个自动实现属性Name
和Age
,编译器会自动生成private
字段并提供默认的get和set访问器。
如果不希望属性被写入,只能被读取,可以通过省略set访问器来创建只读属性。以下是只读属性的示例:
public data_type PropertyName { get; }
例如:
public class Person
{
public string Name { get; }
public int Age { get; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
在该示例中,Name
和Age
属性的值只能在构造函数中初始化,并且不能在其他地方更改。
计算属性(Computed Property)是一种根据其他属性计算得出的属性。以下是计算属性的示例:
public data_type PropertyName
{
get { // 计算属性值的逻辑 }
}
例如:
public class Circle
{
private double radius;
public double Radius
{
get { return radius; }
set { radius = value; }
}
public double Diameter
{
get { return 2 * radius; }
}
public double Area
{
get { return Math.PI * radius * radius; }
}
}
在上述示例中,Diameter
和Area
属性都是根据Radius
属性计算得出的。
以上就是关于对象在C#中的每个属性的介绍,你可以根据实际需求选择使用普通属性、自动实现属性、只读属性或计算属性。这些属性提供了简洁且可控制的方式来访问和操作对象的成员变量。