当前位置:  编程技术>.net/c#/asp.net

C#学习笔记之C#只读字段

    来源: 互联网  发布时间:2014-08-30

    本文导语:  先来个有关C#只读字段的总结: 1,const定义是常量,其概念就是包含一个不能修改的值,而只读字段是在运行之前是未知的,但定义之后值不能改变。 2,只读字段,只可以在构造函数中对只读字段赋值。 3,静态的只读字段...

先来个有关C#只读字段的总结:
1,const定义是常量,其概念就是包含一个不能修改的值,而只读字段是在运行之前是未知的,但定义之后值不能改变。
2,只读字段,只可以在构造函数中对只读字段赋值。
3,静态的只读字段只能在静态构造函数中定义。
4,非静态制度字段,每一个实例都会有不同的值。
5,只读字段和常量都不需要设置为私有,因为我们不能在外部修改它们。
6,如果不在构造函数中赋值,那么制度字段会自动初始化为其数据类型的默认值。

只读字段可以在构造函数中给只读字段赋值,但不能在其他地方赋值,只读字段可以是一个实例字段,而不是静态字段,类的每个实例可以有不同的值。
与const字段不同,如果要把字段设置 为静态,就必须显式声明。

有关C#只读字段与常量的区别,这里有个实例代码:C#只读字段和常量的区别 静态构造函数的例子,大家可以参考下。

如果有一个编辑文档的MDI程序,因为要注册,需要限 制可以同时打开的文档数。现在假定要销售该软件的不同版本,而且顾客可以升级他们的版本,以便同时打开更多的文档。显然,不能再源代码中对最大文档数进行 硬编程。而是需要一个字段表示这个最大文档数。这个字段必须是只读的---每次安装程序时,从注册表或其他文件存储中读取。
 

代码示例:
public class DocumentEditor
{
   public static readonly uint MaxDocuments;
   static DocumentEditor()
   {
      MaxDocuments = DoSomethingToFindOutMaxNumber();
}
}

在本例中,字段是静态的,因为每次运行程序的实例时,只需存储最大文档数一次。 这就是在静态构造函数中初始化它的原因。如果只读字段是一个实例字段,就要在实例构造函数中初始化它。
 

代码示例:
public class Document
{
   public readonly DateTime CreationDate;
   public Document()
   {
     CreationDate = someDate;
   }
}

注意:
在构造函数中不必给只读字段赋值,如果没有赋值,它的值就是其数据类 型的默认值,或者在声明时给它初始化的值。
这适用于静态和实例只读字段。

有关C#只读字段的内容,就介绍这些吧,希望对大家有所帮助。


    
 
 

您可能感兴趣的文章:

  • C#学习笔记之C#的虚方法
  • C#学习笔记之C#中的类
  • C#学习笔记之C#类的初始化
  • C#.NET学习笔记5 C#中的条件编译
  • C#学习笔记之C#接口的索引器
  • C# 全局变量的学习小结
  • c# 常量与字段学习
  • C#学习笔记之抽象类和抽象函数
  • c# MD5加密的代码(简单示例,仅供学习参考)
  • C# 泛型数组学习小结
  • C#学习笔记之C#结构
  • 实例学习C#中Ref,Out的用法
  • C#学习笔记之扩展方法
  • C#学习笔记之继承
  • C#类的学习笔记之C#构造函数
  • c#进度条ProgressBar学习笔记
  • C# 泛型数组实例学习与总结
  • 实例学习C#中is与As运算符号的用法
  • c# 类型构造器学习
  • c#方法重写和隐藏的学习示例
  • 与MSSQL对比学习MYSQL的心得(三)--查看字段的长度
  • SQL学习笔记五去重,给新加字段赋值的方法
  • MySQL学习笔记4:完整性约束限制字段
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 学习linux是用PC好还是笔记本好?
  • Oracle 10G进程体系学习笔记
  • Linux 下 Oracle 命令学习笔记
  • 版本控制ClearCase,求ClearCase的学习笔记。在线等待!分不够另开贴再加。
  • jQuery学习笔记之toArray()
  • Linux+Oracle学习笔记
  • SQL学习笔记八 索引,表连接,子查询,ROW_NUMBER
  • MySQL定时器EVENT学习笔记
  • 哪位有西陆"Java初学者"论坛版主chairyuan的学习笔记,现在那里DOWN不了,拜托哪位发一份给我,谢谢:) myjava@263.net
  • Python学习笔记_数据排序方法
  • 设计模式---学习笔记2
  • Oracle数据库基本知识学习笔记
  • jQuery学习笔记之jQuery原型属性和方法
  • JS 正则表达式的相关方法(正则学习笔记1)
  • oracle 技巧学习笔记
  • java 学习笔记(入门篇)_java程序helloWorld
  • java 学习笔记(入门篇)_java的安装与配置
  • CSS学习笔记Padding 属性中参数的定义与使用
  • shell脚本编程之case语句学习笔记
  • SQL学习笔记一SQL基础知识
  • PHP介绍及学习网站推荐
  • 想深入学习Java应该学习哪些东西
  • 准备学习docker: docker version命令查看版本
  • 新手提问:学习c++同时也想学习unix和linux
  • HTML 学习总结及下一步学习教程推荐
  • 学习c后,学习pb,大家提点建议,谢谢哦
  • OpenStack相关学习资料搜集
  • 有最近开始学习Minix的吗?一起来学习吧
  • juqery的python实现:pyquery学习使用教程
  • 我想问问哪里有AIX下啊!~版本越新越好!~我想拿来学习学习
  • 想找共同学习Linux的新手,一起学习,共同成长


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3