C#语法——const vs readonly
来源:互联网 发布:vj软件resolume 编辑:程序博客网 时间:2024/06/07 23:00
const和readonly的比较,是困扰我很久的一个问题,正好有空就专门抽空看了看(真的打算细看的时候才发现这么简单),也正好试用下Markdown的语法,谁成想写着写着就成了MSDN的翻译文章(甚至都不算是翻译,只是整理),自罚一杯…
来自MSDN的比较
1. 都是C#中的关键字(访问修饰符);
2. 被const修饰的字段,必须在初始化的时候赋值;(编译时变现出的常量状态)
3. 被readonly修饰的字段,即可以在初始化的时候赋值,也可以在声明字段的类的构造函数中赋值;(运行时表现出的常量状态)
来自MSDN的示例
1.const示例
public class ConstTest { class SampleClass { public int x; public int y; public const int c1 = 5; public const int c2 = c1 + 5; public SampleClass(int p1, int p2) { x = p1; y = p2; } } static void Main() { SampleClass mC = new SampleClass(11, 22); Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); Console.WriteLine("c1 = {0}, c2 = {1}", SampleClass.c1, SampleClass.c2 ); }}/* Output x = 11, y = 22 c1 = 5, c2 = 10 */
2.readonly示例
public class ReadOnlyTest{ class SampleClass { public int x; // Initialize a readonly field public readonly int y = 25; public readonly int z; public SampleClass() { // Initialize a readonly instance field z = 24; } public SampleClass(int p1, int p2, int p3) { x = p1; y = p2; z = p3; } } static void Main() { SampleClass p1 = new SampleClass(11, 21, 32); // OK Console.WriteLine("p1: x={0}, y={1}, z={2}", p1.x, p1.y, p1.z); SampleClass p2 = new SampleClass(); p2.x = 55; // OK Console.WriteLine("p2: x={0}, y={1}, z={2}", p2.x, p2.y, p2.z); }}/* Output: p1: x=11, y=21, z=32 p2: x=55, y=25, z=24*/
本博文参考
来自MSDN的解释
其它博文
1 0
- C#语法——const vs readonly
- c# readonly vs const
- readonly VS const C#
- C# const VS readonly
- C# .NET : const vs. readonly
- C# .NET Quiz: const vs. readonly
- c# const const readonly
- readonly vs. const [C#]
- readonly vs. const
- readonly vs. const [C#]
- readonly vs. const [C#]
- readonly vs. const [C#]
- readonly vs. const [C#]
- readonly vs const [C#]
- const vs readonly
- C# const, readonly, static readonly
- C# const, readonly, static readonly
- C# const, readonly, static readonly
- Ant详解
- Android RecycleView上拉加载
- 如何解决哈希冲突
- python3 threading thread 模块学习
- [IOS]对视频、音频播放器添加缓冲进度条
- C#语法——const vs readonly
- Image图片的相关工具类
- leetcode 27. Remove Element
- SIFT特征(三)
- Android HeaderAndFooterRecyclerView、ExRecyclerView、PullRefreshLoadRecyclerView、PowerfulRecyclerView
- app store上传图片显示错误:未能创建 屏幕快照
- 加载数据之前的加载等待中效果
- 切换fragment回来的时候如果有类似viewpager的控件,会自动的被隐藏了,自动滑动了最上方的问题解决
- 总结项目中不支持emoji表情的问题的解决方法