浅谈C# 字段和属性
在C#编程语言中,字段和属性都是用来存储数据的一种方式。但是在使用时有些微小的差别,下面我们来具体讲解一下。
字段(Field)
字段是在类或结构体内被定义的变量,它们存储着对象或结构体的状态信息。字段通常被直接赋值或通过构造函数来初始化。
定义字段
在类中定义字段的语法如下:
访问修饰符 类型 字段名;
例如:
public int Age;
private string name;
字段初始化
字段可以在定义时直接初始化,例如:
public int Age = 30;
private string name = "Tom";
使用字段
可以通过类的实例来访问字段值:
Person person = new Person();
person.Age = 25;
person.Name = "Jack";
示例1 - 定义和使用字段
定义一个简单的Person类,该类有两个字段:姓名和年龄。示例代码如下:
public class Person
{
public string Name;
public int Age;
}
使用该类创建对象并访问字段,示例代码如下:
Person person = new Person();
person.Name = "Tom";
person.Age = 30;
Console.WriteLine("Name: " + person.Name + ", Age: " + person.Age);
输出结果为:Name: Tom, Age: 30。
示例2 - 字段访问级别
在上面的示例中,Name和Age字段的访问级别都是public,这意味着它们可以从该类的任何其他类中访问。但如果将访问级别设置为private,则只有在该类内部才能被访问。例如:
public class Person
{
private string name;
private int age;
}
属性(Property)
属性是一种特殊的方法,它们可以用来读取、写入或计算私有字段的值。属性可以控制字段的访问级别、进行边界检查等。属性通常包括get和set方法,并且在使用时类似于字段。
定义属性
在类中定义属性的语法如下:
访问修饰符 类型 属性名
{
get { return 取值方法; }
set { 赋值方法; }
}
例如:
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
使用属性
可以通过类的实例来访问属性值:
Person person = new Person();
person.Name = "Tom";
string name = person.Name;
示例3 - 定义和使用属性
继续使用上面定义的Person类,我们将为它创建两个属性:Name和Age。示例代码如下:
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 person = new Person();
person.Name = "Tom";
person.Age = 30;
Console.WriteLine("Name: " + person.Name + ", Age: " + person.Age);
输出结果为:Name: Tom, Age: 30。
示例4 - 属性的访问级别
和字段类似,属性的访问级别可以被设置为public、private等。例如:
public class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
private set { name = value; }
}
public int Age
{
get { return age; }
set
{
if(value >= 0 && value <= 120)
{
age = value;
}
else
{
throw new ArgumentException("Invalid age value.");
}
}
}
}
在上面的示例中,Name属性的set方法的访问级别被设置为private,这意味着只能在该类中进行设置。而Age属性的set方法通过进行了边界检查,避免了无效的赋值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈C# 字段和属性 - Python技术站