一 C#中常量和变量
C#中里面有变量和常量,变量一般分为局部变量和全部变量,程序中不能改变的数据,称为 常量,常量常用修饰符const和Readonly。
1.用const修饰的默认为静态常量,调用方式为类名.形式,const修饰的常量,必须赋值,支持方法中定义
2.用readonly修饰的为动态常量,调用方式为对象.形式,readonly修饰的常量,可以延迟赋值,只能在类中定义
3.修饰常量,不可以更改内容
public Program() { NUMBER2 = 1000; }//构造函数中延迟赋值NUMBER2
const int NUMBER = 100;
readonly int NUMBER2 ;
static void Main(string[] args)
{
Console.WriteLine(Program.NUMBER );//直接使用类名.形式访问
Program program11 = new Program();
//program1.NUMBER2 = 1000; //错误,必须在构造函数或者初始化定义
Console.WriteLine(Program1.NUMBER2);
}
运行结果:
100
1000
4.const修饰的范围小于readonly,const一般无法修饰自定义的引用类型,例如,student类
const无法修饰
const student s1 = new student { name = "lisi", age = 1 };//报错
readonly student S2 = new student { name= "lisi", age =1};//正常
二 readonly修饰自定义引用类型
readonly修饰自定义引用类型,指的自定义引用类型中在堆的地址不变,但存储内容可以进行更改
const int NUMBER = 100;
readonly int NUMBER2 = 1000;
readonly student S2 = new student { name= "lisi", age =1};
static void Main(string[] args)
{
Program program1 = new Program();
program1.S2.name = "王二";
program1.S2.age = 3;
student s3 = new student();//开辟新的堆的地址
program1.S2 = new student(); //报错,无法使用
}
以上.