C#语法:Const&Readonly

一  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(); //报错,无法使用
}

以上.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值