博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Const 与 Readonly 使用总结
阅读量:6140 次
发布时间:2019-06-21

本文共 1704 字,大约阅读时间需要 5 分钟。

在以往的开发过程中一直使用Const来定义常量,很少注意到Readonly的使用,因为总感觉Const的使用已经足够了。而就在这两天,在阅读SqlHelper的代码时,再次看到了Readonly的使用,而且感觉很别扭。如果按Const来说,定义了常量后,常量在使用时是不允许再次改变的。而Readonly不然,在构造函数中进行了再次赋值。由于对Readonly使用的迷惑,本着学习的态度,总结了Const 与 Readonly 使用,供以后参考:

名称

静态常量(Const)

动态常量/只读变量(Readonly)

使用范围

全局和局部

全局

初始值

定义时必须赋初始值

定义时可不赋值

赋值方式

定义时赋值

定义时赋值、构造函数中赋值

访问方式

类型访问

实例对象访问

Static

不能和Static同时使用

可以和Static 同时使用,使用后,如果想在构造函数中赋初始值,必须使用静态无参构造函数。

应用类型

只能应用值类型和string类型

任意类型

实例(vs2008)

1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5  6 namespace ConstAndReadonly  7 {
8 class Program 9 {
10 static void Main(string[] args) 11 {
12 Console.WriteLine(ConstTest.str); //通过类型访问 13 ReadonlyTest rt = new ReadonlyTest("123456"); //通过实例对象访问,并通过构造函数赋值 14 Console.WriteLine(rt.str); 15 Console.WriteLine(rt.strnull); 16 string[] str1 = {
"1","2","3","4","5","6" }; 17 ReadonlyTest rt2 = new ReadonlyTest(str1); //通过构造函数赋予数组 18 Console.WriteLine(rt2.str1.Count()); 19 Console.ReadLine(); 20 } 21 } 22 class ConstTest 23 {
24 public const string str = "Const Test"; //无法改变 25 } 26 class ReadonlyTest 27 {
28 public readonly string str = "Readonly Test"; 29 public readonly string strnull; //未赋予初始值,默认赋值null; 30 public readonly string[] str1; 31 public ReadonlyTest(string s) 32 {
33 this.strnull = this.str; 34 this.str = s; 35 } 36 public ReadonlyTest(string[] s) 37 {
38 this.str1 = s; 39 } 40 } 41 }

 

转载地址:http://sucya.baihongyu.com/

你可能感兴趣的文章
分布式锁 基于Redis
查看>>
struts2 <s:iterator> status属性
查看>>
决策树(决策树的分支深度及重要特征检测)
查看>>
js实现的省市联动
查看>>
每天一个linux命令(16):which
查看>>
Unity3D 之3D游戏入门Hello world(一)
查看>>
网络架构、云平台和微信公众平台开发接入
查看>>
.NET软件开发与常用工具清单(转)
查看>>
windows装了双系统设置默认启动系统
查看>>
数据本地化之文件操作
查看>>
Linux下的网络管理工具—OpenNMS
查看>>
Java 8 VM GC Tuning Guide Charter2
查看>>
子网掩码与子网划分
查看>>
Android访问网络数据的几种方式Demo
查看>>
Spring-AOP
查看>>
转】用Maven构建Hadoop项目
查看>>
SAP自定义权限对象
查看>>
Guava 12-数学运算
查看>>
windows 下搭建简易nginx+PHP环境
查看>>
python 局部变量和全局变量 global
查看>>