Const和readonly这间的区别和相同处

相同:  const和readonly都是用来修饰常量的

不同: const 在申明之前就要对它初始化,readonly修饰的常量则可以到构造函数中初始化

const注重的是效率但是readonly注重的是灵活性

const在内存中不会占用内存但是readonly要保存常量的话就要消耗内存的

const只能修饰基元例如:string ,int bool 但是readonly却没有这个限制的

2:as,is转型比强制转型的优势

优势在于as,is 不抛出异常,如果转型失败,则返回null

强制转型则会抛出异常,导致代码必须处理异常,效率低。

值得注意的是,as只能转型基本类型,对于基本类别如int等的转型,只能使用强制转型或is。

 

9:区别IComparable<T>和IComparer<T>

前者IComparable<T>为类提供默认的比较器,而IComparer<T>可以为集合类提供更多的比较器。具体查看http://www.cnblogs

时间: 2024-08-27 23:55:25

Const和readonly这间的区别和相同处的相关文章

C# 总结const、 readonly、 static三者区别:

总结const. readonly. static三者区别: (有人问我,看似简单,我也没能立刻回答出来,总结一下,分享一下.) const:静态常量,也称编译时常量(compile-time constants),属于类型级,通过类名直接访问,被所有对象共享! a.叫编译时常量的原因是它编译时会将其替换为所对应的值: b.静态常量在速度上会稍稍快一些,但是灵活性却比动态常量差一些: c.静态常量,隐式是静态的,即被static隐式修饰过,不能再用static重复修饰, d.在声明时初始化: e

C# const和readonly修饰符的区别

const 的概念就是一个包含不能修改的值的变量.常数表达式是在编译时可被完全计算的表达式.因此不能从一个变量中提取的值来初始化常量.如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的. readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值.因为 readonly 是在计算时执行的,当然它可以用某些变量初始化.readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活

C#基础知识七之const和readonly关键字

前言 不知道大家对const和readonly关键字两者的区别了解多少,之前真不是很清楚,如果你也不是很清楚的话,那就一起来探讨吧!探讨之前我们先来了解静态变量和动态变量. 静态变量 所谓静态变量就是在编译期间会对变量进行解析,再讲常量的值替换成初始化的值.定义时必须初始化. 动态变量 所谓动态变量就是编译期间会将变量标示只读常量,而不用常量的值代替,定义时可以不初始化,可以延迟到构造函数. const和readonly

const和readonly的区别

const是静态常量,const是编译时常量:readonly是动态常量,是运行时常量,const较高效,readonly较灵活. 1.const默认是静态的,只能由类型来访问,不能与static同时使用:readonly默认是非静态的,由实例对象来访问,可以显示使用static定义为静态成员: 2.const只能应用在值类型和string类型上,其他引用类型常量只能定义为null,否则以new为const引用类型常量赋值,:readonly只读字段,可以使任意类型,但是对于引用类型字段来说,r

const和readonly区别

内容来源<<你必须知道的.NET>>(转载) 标题:什么才是不变:const和readonly 内容: const:用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序 static readonly:用 static readonly 修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问.初始化后不可以修改.但与常量不同的是这种变量是在运行期初始化 const和static readonly的确很像:通过类名而不是对象名进行访问,在程序

.net 中const 与readonly的区别???

const和readonly都是只读的.但是const修饰的变量必须在声明时赋值.readonly修饰的变量可以在声明时或者构造函数里赋值.private const double pi=3.14;class A { private readonly int a; public A(int v) { a=v; } }

C#庖丁解牛之const与readonly

一.const与readonly的争议 你一定写过const,也一定用过readonly,但说起两者的区别,并说出何时用const,何时用readonly,你是否能清晰有条理地说出个一二三? const与readonly之所以有如此争议,是因为彼此都存在"不可改变"这一特性,对于二者而言,我们需要关心的是,什么时候开始不可变?什么是不可改变的?这就引出了我们下面要讨论的话题. 二.什么时候开始不可变? 我们先抛出结论. const在程序运行的任何时候都是不可变的,无论什么时候开始,什么

const与readonly常量

const与readonly都是用来定义常量,但是它们有什么区别呢? 下面我们来简要的说明一下: const修饰的常量是编译时常量,如:public const String PI=3.1415;什么是编译时常量,通俗来讲就是指你在声明时,必须要进行赋值(也就是初始化),如果不赋值,编译时会出现说“常量字段要求提供一个值”的异常. readonly修饰的是运行时常量,可以在声明中赋值,也可以在构造函数中赋值(注意只能在这两个地方赋值). http://www.cnblogs.com/royenh

const和readonly你真的懂吗?

第二遍文章我打算把const和readonly的区别拿出来讲下,因为写代码这么久我都还没搞清楚这两者的区别,实在有点惭愧,所以这一次我打算搞清楚它. 定义 来看看MSDN的解释: readonly:readonly关键字是可以在字段上使用的修饰符.当字段声明包括readonly修饰符时,该声明引入的字段赋值只能作为声明的一部分,或者出现在同一类的构造函数中. const:使用 const 关键字来声明某个常量字段或常量局部变量. 常量字段和常量局部变量不是变量并且不能修改. 太多理论的讲解有些人