顾名思义,只读字段,就是说在程序运行过程中,程序中可以读取这个字段的值,而不能修改它的值。在C#中可以使用readonly关键词来定义一个只读字段。
在C#中使用只读字段主要有以下几个要点:
(1)只读字段可以在定义的同时赋值或者在类的构造方法中给其赋值;
(2)除了构造方法外,其他地方不可以修改只读字段的值;
(3)只读字段的属性只能有get访问器,不能有set,这是显而易见的;
只读字段与常量的区别
常量(使用const关键字定义)只能在声明的同时初始化(赋值)。
readonly 字段可以在声明或构造函数中初始化。 因此,根据所使用的构造函数,readonly 字段可能具有不同的值。
只读字段使用举例:
class Student
{
readonly string studentId;
string studentName;
public Student(string sId) //在构造函数中初始化只读字段
{
this.studentId = sId;
}
public Student(string sId, string sName) //另外一个构造函数
{
studentId = sId; studentName = sName;
}
public void PrintInfo() //普通方法
{
Console.WriteLine("学号:{0}", sId);
Console.WriteLine("姓名:{0}", sName);
}
public string StudentId //属性
{
get{ return this.sId;}
set{ sId = value;} //错误,只读字段不能有set
}
}
从上面的例子中可以看出,在不同的实例中只读字段的值可以不同。也可以在多个构造函数中设置只读字段的值。
新闻热点
疑难解答