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

C#只读字段和常量的区别 静态构造函数的例子

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

    本文导语:  代码如下:   代码示例: using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace ConsoleApplication1  {      ///       /// 作者:it小金 www.     /// 功能:c#只读字段和常量的区别,以及静态...

代码如下:
 

代码示例:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
namespace ConsoleApplication1 

    ///  
    /// 作者:it小金 www.
    /// 功能:c#只读字段和常量的区别,以及静态构造函数的使用 
    ///  
    class Program 
    { 
        static void Main(string[] args) 
        { 
            Console.WriteLine(test.a); 
            Console.WriteLine(test.b); 
            Console.Read();            
        }     
    } 
    public class test 
    { 
        public static readonly int b;//只读字段可以使用static关键字,只读字段可以不进行初始化赋值,只读字段只能在构造函数或变量初始化时进行赋值 
        public const int a=1;//常量不可以使用static关键字,常量必须在定义的时候进行初始化进行赋值 
        
       static test()//静态构造函数,类实例化之前调用执行,且只执行一次 
        { 
            
            b = 2;//因为是只读字段,所以只能在构造函数中进行初始化,且改只读字段为static类型,所以需在静态构造函数中进行赋值 
        } 
        void aa() 
        { 
            //a = 1;错误 
            //b=1;错误 
        }         
    } 
}

有关C#中的只读字段

常量的概念是一个包含不能修改的值的变量,常量是C#与大多数编程语言共有的,但是常量不必满足所有的要求。有时需要一些变量,其值不应改变,但在运行之前是未知的,C#为这种情形提供了另一个类型的变量:readonly字段。

readonly关键字比const灵活得多,允许把一个字段设置为常量,但可以执行一些运算,以确定它的初始值。其规则是:可以在构造函数中给readonly字段赋值,但不能在其他地方赋值。readonly字段还可以是一个实例字段,而不是静态字段,类的每个实例可以有不同的值,与const字段不同,如果要把readonly字段设置为静态,就必须显式声明。

注意:
不需要把readonly字段定义为private,因为根据定义,它们不能在外部修改(此规则同样适用于常量)。
在构造函数中不必为readonly字段赋值,如果没有赋值,它的值就是其数据类型的默认值,或者在声明时给它初始化的值。
这适用于静态和实例readonly字段。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Mysql设置查询条件(where)查询字段为NULL
  • RESIN做服务器,从数据库里提取字段值,页面输出顺序必须与字段顺序一致吗?
  • TCP协议报头字段详解及报头图
  • sql添加字段与刪除字段的方法
  • ORACLE数据库常用字段数据类型介绍
  • 太奇怪了,jsp中的rs数据集其他的字段都能取出来,但就是有一两个字段取不出来,这是为什么?
  • SQL字符型字段按数字型字段排序实现方法
  • 类的方法和实例方法,类字段和实例字段有什么不同,在使用上?
  • mysql 增加修改字段类型及删除字段类型
  • 在Java中,用Mircosoft SQL Server数据库,请问要进行日期字段的读取,用( ResultSet rs ; rs.getDate(1),其中1代表相应的字段为 DateTi
  • sk_buff中重复字段的区别及data数据字段请教
  • Sql添加删除字段,判断字段是否存在的方法示例
  • sql server中添加字段、删除字段、修改字段说明
  • 如何将数据库表中每个字段的字段描述在JSP文件中显示出来?
  • 为什么我从数据库中取记录时最多只取两个字段,多于三个字段则报错
  • php中单个数据库字段多列显示(单字段分页、横向输出)
  • mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法
  • Oracle 查询表信息获取表字段及字段注释
  • 数据库递增字段的问题。
  • 谁能给我一个PipedInputStream and PipedOutputStream 怎么用的例子,我想用数据库image字段对另一个imaeagezi字段
  • Jbuilder中字段显示问题


  • 站内导航:


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

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

    浙ICP备11055608号-3