c#只读字段和常量的区别,以及静态构造函数的使用 .
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#只读字段和常量的区别,以及静态构造函数的使用 .的更多相关文章
- Programming C#.Classes and Objects.只读字段
只读字段 当字段声明中含有 readonly 修饰符时,该声明所引入的字段为只读字段.给只读字段的直接赋值只能作为声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现.(在这些上下文中, ...
- 破解C#的readonly只读字段
破解C#的readonly只读字段 目录 请允许我再唠叨几句const和readonly 修改readonly字段: 计策1:反间计 -- 反射修改 计策2:借刀杀人--调节字段偏移位置的结构体来修改 ...
- C#中的字段,常量,属性与方法
以前是学C++的,初次学微软的C#头都大了.什么字段,常量,属性,方法......微软把别人的东西拿来糅合在C#里,弄成了一个“大杂烩”.其实,说到底,“字段”不就是“变量”吗,所谓的“方法”不就是“ ...
- readonly 只读字段的初始化值确定|static 字段的初始值确定
类的初始化顺序 如下: 第一次实例化Son============================ C#编译器缺省将每一个成员变量初始化为他的默认值Son静态字段Son静态构造函数Son字段Fathe ...
- c#基础--常量(const),只读字段(readonly)
1.0:常量 常量被关键字const 所修饰 我们来看看常量的demo class Program { static void Main(string[] args) { const string n ...
- 只读字段(readonly)和常量(const)
1.常量 一个包含不能修改的值的变量,通过const关键字定义.只能在声明的同时赋值 2.只读字段 通过readonly关键字定义. 可以在声明的同时赋值. 对于实例字段,在包含字段声明的类的实例构造 ...
- c#如何区分静态只读变量和常量
常量const 常量就是一个其值永远不会改变的静态字段.常量的值会在编译时自动推算,编译器会在遇到常量时,将其逐个替换为该常量的值.常量可以是C#内建的任何数字类型或枚举类型.声明一个常量的时候必须对 ...
- 【C# 基础概念】静态常量和动态常量的区别
C# 静态常量和动态常量的区别 C#中有两种常量类型分别为readonly(运行时常量)与const(编译时常量),readonly是变量的常量,const是字面量的常量本文将就这两种类型的不同特性进 ...
- C#编程(十五)----------只读字段
只读字段 当字段声明中含有 readonly 修饰符时,该声明所引入的字段为只读字段.给只读字段的直接赋值只能作为声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现.(在这些上下文中, ...
随机推荐
- 170606、防止sql注入(三)
SpringMVC利用拦截器防止 SQL注入案例一个简单的PHP登录验证SQL注入 比如一个公司有一个用来管理客户的客户管理系统,在进入后台进行管理的时候需要输入用户名和密码.假设在客户端传给服务器的 ...
- MySQL数据的查询注意
mysql数据库的查询结果输出的是一个记录,这一个记录是以字典的形式存储的,所以获取字段时要用字典提取数据的形式获取字段信息: 查询的代码: def query(self): # sql语句 sql ...
- avaScript 的基础学习(一)
JavaScript概述 JavaScript由三部分组成: JavaScript的基础 JS的引入方式: JS的数据类型: 运算符: 流程控制: JavaScript的对象 BOM对象 DOM Ev ...
- 用virtualenv建立多个Python独立开发环境(转)
add by zhj: 在virtualenv环境下,安装第三方包时,不要用sudo pip install xxx,要直接用pip install xxx,如果用sudo时,那会安装在原来的系统Py ...
- 求连续出现5次以上的值,并且取第5次所在id
关键字:求连续出现5次以上的值,并且取第5次所在id 关键字:求在某列连续出现N次值的的数据,并且取第M次出现所在行 需求,求连续出现5次以上的值,并且取第5次所在id SQL SERVER: --测 ...
- 97 条 Linux 常用命令及Vim命令总结
一:Vim编辑模式命令 基本上Vim共分为3种模式,分别是一般模式,编辑模式和命令行模式,这三种模式的作用分别如下简述: 一般模式:默认模式.打开vim直接进入的是一般模式,在这个模式下,可以进行的操 ...
- HahMap
HashMap的定义 public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V&g ...
- HDU5086:Revenge of Segment Tree(规律题)
http://acm.hdu.edu.cn/showproblem.php?pid=5086 #include <iostream> #include <stdio.h> #i ...
- validform.js+layer.js 表单验证样式
$("#formAdd").Validform({ tiptype: function (msg, o, cssctl) { if (o.type == 3) {//失败 laye ...
- Python 自带IDLE 如何打开