第八章 常数与字段

一.常数(const)

定义一个常数时,我们必须能够在编译时确定它的值.通过编译后,编译器将常数的值保存在其所定义模块的元数据内.这意味着常数的类型只能是那些编译器认为的基元类型。(c#中,下面的类型可以称为基元类型, Boolean.char.byte,sbyte,decimal,int16,uint16,int32,uint32,int64,uint64,single,double以及string,枚举类型由于本身以基元类型形式存储,故也可以被用来定义常数,但它不是基元类型)

只有基元类型的数据成员在编译时直接进行初始化.而非基元类型的数据成员只能在运行时调用构造器来完成初始化.

常数在运行时不再需要任何的内存分配.也不能获取常数的地址,

二.字段(readonly)

字段保存一个值类型的实例,或一个指向引用类型的引用.在该类型被加载进入一个应用程序时为其分配动态内存.

因为字段是以动态内存的形式存储的.因此只能在运行时刻获取他们的值,

有只读字段和读写字段两种.

只读字段只能在构造器内被赋值(构造器在对象初次创建时被执行,且只执行一次).对于静态只读字段,则只能在静态构造器内赋值.

Code
 1
 2    class SomeType
 3    {
 4        //一个静态只读字段,它的值将在运行时
 5        //类被初始化时计算并存储在内存中
 6        public static readonly Random random = new Random();
 7
 8        //一个静态读写字段
 9        static int numberofWrites = 0;
10
11        //一个实例只读字段
12        public readonly string pathName = "untitled";
13
14        //一个实例读写字段
15        public System.IO.FileStream fs;
16
17        public SomeType(string pathName)
18        
19            //该行修改只读字段pathName
20            //因为是在构造器中,所以可以
21            this.pathName = pathName;
22        }
23
24        public String DoSomeThing()
25        {
26            //该行首先读取静态读写字段,然后又被赋值
27            numberofWrites = numberofWrites + 1;
28
29            //该行读取实例只读字段
30            return pathName;
31        }

转载于:https://www.cnblogs.com/dreamersjun/archive/2008/09/16/1291634.html

.net框架笔记(四)相关推荐

  1. ET框架笔记 (笑览世界写)(转)

    客户端 1.使用unity2017.2.0版本及以上2018版以下,编译原始版ET客户端报没有引用错误时,删除hoxfit下引用的UnityEngine.dll和UnityEngine.UI.dll, ...

  2. 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...

  3. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com 本篇文章里,我们首先对Direct3D之中固定功能流水线中的 ...

  4. H5直播站点运维笔记四 压测篇

    H5直播站点运维笔记四 压测篇 压测篇 一.测试环境 1.CPU 2.内存 3.操作系统 4.WEB环境 二.优化前压测 三.开启opcache优化 四.laravel 缓存配置/路由/类映射加载优化 ...

  5. STM32F103学习笔记四 时钟系统

    STM32F103学习笔记四 时钟系统 本文简述了自己学习时钟系统的一些框架,参照风水月 1. 单片机中时钟系统的理解 1.1 概述 时钟是单片机的脉搏,是单片机的驱动源 用任何一个外设都必须打开相应 ...

  6. MySQL高级学习笔记(四)

    文章目录 MySQL高级学习笔记(四) 1. MySql中常用工具 1.1 mysql 1.1.1 连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 ...

  7. ET 框架笔记【转载】

    ET框架笔记 (笑览世界写)(转) 客户端 1.使用unity2017.2.0版本及以上2018版以下,编译原始版ET客户端报没有引用错误时,删除hoxfit下引用的UnityEngine.dll和U ...

  8. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩 纹理映射技术 二

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  9. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  10. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

最新文章

  1. 【错误记录】Git 使用报错 ( git branch -a 仍能查询到已经删除的远程分支 )
  2. 最大信息系数MIC--minepy安装
  3. 《数据整理实践指南》一第1章 从头说起:什么是噪音数据
  4. java图片裁剪并保存_java裁剪图片并保存的示例分享
  5. 2018/7/18-纪中某C组题【jzoj3508,jzoj3509,jzoj3510,jzoj3512】
  6. 【NBIoT无线模块DTU数传电台】串口服务器RS232/RS485端口工业路由信号传输
  7. 聊聊ExecutorService的监控
  8. qt mysql乱码_Qt连接mysql 并且 解决中文乱码问题
  9. json与jsonp应用及其他ajax数据交互方式
  10. 设置SVN忽略文件和文件夹(文件夹)
  11. Win11未检测到Logitech Unifying接收器的解决方法
  12. python中len和range函数_for循环len函数和range函数的运用
  13. Django part 6 ---Static File
  14. 如何将其他注册商处的域名申请转出并转入阿里云(图文教程)
  15. 从董明珠称格力将会接入鸿蒙系统,是否可以看出手机圈的不堪?
  16. poi导出excel时设置单元格为数字类型(解决:导出Excel时为文本类型选中一整列不能求和问题)
  17. 时间戳转换为年月日时分秒
  18. CTF show 萌新区解题报告 (一)
  19. 电子表格多轴图表_如何在Google表格中切换图表轴
  20. 智慧建筑的几个常见误区

热门文章

  1. 使用MSDN学习ASP.NET的工作流程
  2. matlab红色爱心,心形图的matlab实现
  3. Java Script之创建对象
  4. Hibernate的单向1-1关联(二)
  5. 【渝粤教育】国家开放大学2018年秋季 0133-21T大学物理 参考试题
  6. 【渝粤教育】国家开放大学2018年秋季 1356T高级英语听说(2) 参考试题
  7. 【渝粤教育】国家开放大学2018年秋季 0692-21T化工设备机械基础 参考试题
  8. 【sklearn第十一讲】随机梯度下降
  9. 计算机视觉实战(三)阈值与平滑处理
  10. javascript 权威指南二