C#中readonly常量的作用是什么

今天就跟大家聊聊有关C# 中readonly常量的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

成都创新互联公司专业为企业提供武义网站建设、武义做网站、武义网站设计、武义网站制作等企业网站建设、网页设计与制作、武义企业网站模板建站服务,十载武义做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

C#语言还是比较常见的东西,这里我们主要介绍C# readonly常量,包括介绍readonly和const都是用来标识常量等方面。

readonly和const都是用来标识常量的。

const可用于修饰class的field或者一个局部变量(local variable);而readonly仅仅用于修饰class的field。

const常量的值必定在编译时就已明确并且恒定的;而C# readonly常量却有一点不同,那就是其值可以在运行时编译,当然,它也必须遵守作为常量的约束,那就是值必须恒定不变。

const常量必须在声明的同时对其进行赋值,并且确保该值在编译时可确定并恒定;而C# readonly常量则可以根据情况选择在声明的同时对其赋予一个编译时确定并恒定的值,或者将其值的初始化工作交给实例构造函数(instant constructor)完成。如:public readonly string m_Now = DateTime.Now.ToString();,m_Now会随着运行时实际情况变化而变化。

const常量属于类级别(class level)而不是实例对象级别(instant object level),并且它不能跟static结合一起使用,该常量的值将由整个类的所有实例对象共同分享(详细论述参见后面的Remark区域)。

C# readonly常量既可以是类级别也可以是实例对象级别的,这取决于它的声明以及初始化工作怎么实施。readonly可以与static结合使用,用于指定该常量属于类级别,并且把初始化工作交由静态构造函数(static constructor)完成(有关如何把C# readonly常量声明为类级别或实例对象级别的论述清参见后面的Remark区域) 。

能被const修饰声明为常量的类型必须是以下的基元类型(primitive type):sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, float, bool, decimal, string。

object, 数组(Array)和结构(struct)不能被声明为const常量。

一般情况下,引用类型是不能被声明为const常量的,不过有一个例外:string。该引用类型const常量的值可以有两种情况,string或null。其实,string虽然是引用类型,但是.NET却对它特别处理,这种处理叫做字符串恒定性(immutable),使得string的值具有只读特性。

using System;  public class Order  {  public Order()  {  Guid guid = Guid.NewGuid();  ID = guid.ToString("D");  }   // 对于每一份订单,其订单序号都是实时确定的常量。 style="color: #008000;"> public readonly string ID;   public override string ToString()  {  return "Order ID: " + ID;  }  }

看完上述内容,你们对C# 中readonly常量的作用是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


当前标题:C#中readonly常量的作用是什么
本文来源:http://scyanting.com/article/ihsdje.html