using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    /// <summary>
    /// 功能:c#只读字段和常量的区别,以及静态构造函数的使用
    /// </summary>
    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()//静态构造函数,类实例化之前(编译时,C#是即时编译的)调用执行,且只执行“一次”
        {
          
            b = 2;   //只读字段可以在构造函数中进行初始化赋值,且该只读字段为static类型,所以需要在静态构造函数中进行赋值
        }
        void aa()
        {
            //a = 1;错误
            //b=1;错误
        }

}
}

c#只读字段和常量的区别,以及静态构造函数的使用 .的更多相关文章

  1. Programming C#.Classes and Objects.只读字段

    只读字段 当字段声明中含有 readonly 修饰符时,该声明所引入的字段为只读字段.给只读字段的直接赋值只能作为声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现.(在这些上下文中, ...

  2. 破解C#的readonly只读字段

    破解C#的readonly只读字段 目录 请允许我再唠叨几句const和readonly 修改readonly字段: 计策1:反间计 -- 反射修改 计策2:借刀杀人--调节字段偏移位置的结构体来修改 ...

  3. C#中的字段,常量,属性与方法

    以前是学C++的,初次学微软的C#头都大了.什么字段,常量,属性,方法......微软把别人的东西拿来糅合在C#里,弄成了一个“大杂烩”.其实,说到底,“字段”不就是“变量”吗,所谓的“方法”不就是“ ...

  4. readonly 只读字段的初始化值确定|static 字段的初始值确定

    类的初始化顺序 如下: 第一次实例化Son============================ C#编译器缺省将每一个成员变量初始化为他的默认值Son静态字段Son静态构造函数Son字段Fathe ...

  5. c#基础--常量(const),只读字段(readonly)

    1.0:常量 常量被关键字const 所修饰 我们来看看常量的demo class Program { static void Main(string[] args) { const string n ...

  6. 只读字段(readonly)和常量(const)

    1.常量 一个包含不能修改的值的变量,通过const关键字定义.只能在声明的同时赋值 2.只读字段 通过readonly关键字定义. 可以在声明的同时赋值. 对于实例字段,在包含字段声明的类的实例构造 ...

  7. c#如何区分静态只读变量和常量

    常量const 常量就是一个其值永远不会改变的静态字段.常量的值会在编译时自动推算,编译器会在遇到常量时,将其逐个替换为该常量的值.常量可以是C#内建的任何数字类型或枚举类型.声明一个常量的时候必须对 ...

  8. 【C# 基础概念】静态常量和动态常量的区别

    C# 静态常量和动态常量的区别 C#中有两种常量类型分别为readonly(运行时常量)与const(编译时常量),readonly是变量的常量,const是字面量的常量本文将就这两种类型的不同特性进 ...

  9. C#编程(十五)----------只读字段

    只读字段 当字段声明中含有 readonly 修饰符时,该声明所引入的字段为只读字段.给只读字段的直接赋值只能作为声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现.(在这些上下文中, ...

随机推荐

  1. 02.JMS基础

    1.面向消息的中间件(MOM) 1.什么是MOM     面向消息的中间件,Message Oriented Middleware,简称MOM,中文简称消息中间件,利用高效可靠的消息传递机制进行平台无 ...

  2. SVN 配置和使用

    SVN使用环境 使用SVN管理源代码,必须有2套环境 服务器 用来存储客户端上传的源码 一般都是在Windows环境下安装Visual SVN Server 客户端 用来提交.回退.修改.下载等操作 ...

  3. 170630、springboot编程之普通类中调用spring管理的bean对象

    我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用 ...

  4. Spring.Net的使用

    1.Spring.Net的简单介绍 spring.net 框架是微软效仿java中的spring框架而推出的一种在.net中使用的框架,它使用配置的方式实现逻辑的解耦,它的主要功能集成在Spring. ...

  5. Ubuntu下MySQL主从同步配置

    一.在两台Linux机器上安装MySQL 二.Master主服务器配置(192.168.1.3) 1.编辑my.cnf编(命令查找文件位置:find / -name my.cnf) vi /etc/m ...

  6. mysql 数据操作 单表查询 group by 练习

    小练习: 1. 查询岗位名以及岗位包含的所有员工名字 mysql> select post,group_concat(name) from employee group by post ; +- ...

  7. Openstack(四)Mysql主从

    4.1 安装mysql 4.1.1 安装依赖 # yum install vim gcc gcc-c++ wget autoconf  net-tools lrzsz iotop lsof iotop ...

  8. Scala使用JUnit4单元测试

    在项目开发中在很多地方都要做单元测试,在做Spark项目时使用Scala开发.所以总结一下Scala中的单元测试: 在Maven pom文件中添加依赖: <dependency> < ...

  9. Java之父及Java诞生

    来自为知笔记(Wiz)

  10. http之请求报文request

    https://blog.csdn.net/blueheart20/article/details/45174399 户端发送一个HTTP请求到服务器的请求消息包括以下格式: 请求行(request ...