一、常量、只读字段、静态字段和静态只读字段对比

 public class ModelClass
{
//常量在定义时必须赋初始值
//public const string constField;
public const string constField = "常量";
public readonly string readField = "只读字段";
public static string staticField = "静态字段";
public static readonly string staticReadField = "静态只读字段"; public ModelClass()
{
//常量的值在编译时就必须知道,而构造函数在运行时才执行,所以常量不能通过构造函数赋初值;而只读字段的值可以在运行时才决定。
//constField = "不能在构造函数中初始化常量";
readField = "构造函数初始化只读字段";
}
static ModelClass()
{
//constField = "不能在静态构造函数中初始化常量";
staticField = "静态构造函数初始化静态字段";
staticReadField = "静态构造函数初始化静态只读字段";
} public string Method()
{
//在方法中定义常量并使用
const string constLocal = "局部常量";
string result = constLocal;
return result;
//readonly和static都不能在方法中使用
}
public static string StaticMethod()
{
//在静态方法中定义常量并使用
const string constLocal = "局部常量";
string result = constLocal;
return result;
//readonly和static都不能在静态方法中使用
}
}
public class RealizeObject
{
public void Realize()
{
//常量、静态字段和静态只读字段是类级别的
string value1 = ModelClass.constField;
string value2 = ModelClass.staticField;
string value3 = ModelClass.staticReadField;
//只读字段是对象级别的
ModelClass model = new ModelClass();
string value4 = model.readField;
//常量、只读字段和静态只读字段的值不能被修改
//ModelClass.constField = "不可以修改常量的值";
//model.readField = "不可以修改只读字段的值";
//ModelClass.staticReadField = "不可以修改静态只读字段的值";
ModelClass.staticField = "可以修改静态字段的值";
}
}

常量、只读字段、静态字段和静态只读字段对比表:

常量、只读字段、静态字段和静态只读字段适用数据:

1、常量适用于定义时就已知且不能改变的数据。

2、只读字段适用于通过第三方在运行时赋值且不能改变的数据(对象独享)。

3、静态只读字段适用于通过第三方在运行时赋值且不能改变的数据(对象共享)。

4、静态字段适用于对象共享的数据。

C#各种字段类型对比的更多相关文章

  1. db2和oracle字段类型对比

    在网上找到一片关于oracle与DB2数据类型的比较,特记下来. Oracle DB2/400 Oracle数据类型 注意事项 DB2 UDB数据类型 注意事项 DATE DATETIMETIMEST ...

  2. MySQL 常用字段类型,介绍及其建表使用方法经验分享

    由于工作的公司没有专业的DBA又经常需要建立各种各种的表来满足自己的业务逻辑,所以经常查看MySQL 手册或者谷歌查看相关资料,所以本人就根据我的工作经验和相关资料来介绍一下MySQL各种字段类型及其 ...

  3. SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理

    原文:SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理 SQL Server 字段类型 decimal(18,6)小数点前是几位? 不可否认,这是 ...

  4. odoo开发基础--模型之基本字段类型

    定义模型的时候,和python的其他框架类似,可以对比Django,同样是一个模型即:一个class对应生成数据库中的一张表, 只是odoo的继承机制比较复杂一点,在日常的开发中,定义模型的时候, 基 ...

  5. Django ORM中常用的字段类型以及参数配置

    一.数值型 AutoField对应int(11).自增主键,Django Model默认提供,可以被重写. BooleanField对应tinyint(1).布尔类型字段,一般用于记录状态标记. De ...

  6. Django中的常用字段类型与参数

    Django中的常用字段类型 1. 数值型 以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1) ...

  7. Oracle修改字段类型方法总结

    有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar ...

  8. 关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复

    下午在写代码时,突然发现一个列名为Enable的字段怎么也查询不出来,开始以为可能这个名称是关键字,所以给过滤掉了,所以就将名称修改为IsEnable,问题还是一样......将名称又改为IsEnab ...

  9. Django model字段类型清单

    转载:<Django model字段类型清单> Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField ...

随机推荐

  1. python 五星红旗

    import turtle turtle.setup(600,400,0,0) turtle.bgcolor("red") turtle.fillcolor("yello ...

  2. Python3+mitmproxy安装使用教程(Windows)(转载)

    mitmproxy 是用于MITM的proxy,MITM中间人攻击.说白了就是服务器和客户机中间通讯多增加了一层.跟Fiddler和Charles最大的不同就是,mitmproxy可以进行二次开发,尤 ...

  3. jcenter下载不了时,用国内镜像下载解决

    修改build.gradle,以下是原本的配置信息 buildscript { repositories { google() jcenter() } dependencies { classpath ...

  4. Centos7下安装ORACLE 11g,弹窗不显示

    Centos7下安装ORACLE 11gR2,弹窗不显示,安装界面显示为灰色. 解决方法:执行安装时带上一下参数 ./runInstaller -jreLoc /etc/alternatives/jr ...

  5. JDBC 线程安全 数据库连接池

    jdbc 是线程安全的,但是,推荐一个线程用一个链接 JDBC is thread safe: It is quite OK to pass the various JDBC objects betw ...

  6. nginx 分离配置文件 conf.d和default.conf

    1. 在 nginx.conf 文件中引用 conf.d 下的所有配置文件 #在http配置节的末尾添加配置引用 http { ... #gzip on; include /etc/nginx/con ...

  7. VMware设置桥接模式(使虚拟机拥有独立IP访问外网)

    1.关闭虚拟机里的系统 2.VMware主窗口 编辑---->虚拟网络编辑器 右下角----> 更改设置---->出现  桥接模式 桥接到:看本机所连接的网络, 网络属性中有一项“描 ...

  8. C++文件fstream的操作

    用到的关于输入输出fstream流相关的知识 1.两个主要函数:read( )函数 从流中读取字符串的成员函数read 该成员函数一般形式是:read(char* pch, int nCount) 从 ...

  9. Python模块学习filecmp文件比较

    Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...

  10. setup_module和teardown_module

    setup_module .teardown_module 每个用例开始和结束调用一次 hasattr() 函数用于判断对象是否包含对应的属性 运行结果如下: