当前位置: 首页 > news >正文

C# 深入理解类(成员常量)

成员常量

成员常量类似前一章所述的局部常量,只是它们被声明在类声明中而不是方法内,如下面的
示例:

image
与局部常量类似,用于初始化成员肯量的值在编译时必须是可计算的,而且通常是一个预定
义简单类型或由它们组成的表达式。

class MyClass
{Const int IntVal1=100;  //没问题,因为IntVal1的值Const int IntVal2=2*IntVal1;//前面一行已设置
}

与局部常量类似,不能在成员常量声明以后给它赋值。

class MyClass
{Const int IntVal;  //错误:必须初始化IntVal=100;        //错误:不允许赋值
}

说明 与C和C++不同,在C#中没有全局常量。每个常量都必须声明在类型内。

常量与静态量

然而,成员常量比局部常量更有趣,因为它们表现得像静态值。它们对类的每个实例都是“可
见的",而且即使没有类的实例也可以使用。与真正的静态量不同,量没有自己的存储位置,
而是在编译时被编译器替换。这种方式类似于C和C++中的#define值。

例如,下面的代码声明了类x,带有常量字段PI。Main没有创建x的任何实例,但仍然可以
使用字段PI并打印它的值。图7-6阐明了这段代码。

class X
{public const doouble PI=3.1416;
}class Program
{static void Main(){Console.WriteLine($"pi={X.PI}");//使用常量字段PI}
}

常量字段表现得像静态字段,但是在内存中没有存储位置

static const double PI=3.14;//错误:不能将常量声明为static

相关文章:

  • Android 性能优化入门(一)—— 数据结构优化
  • 学习黑客Kerberos深入浅出:安全王国的门票系统
  • 利用html制作简历网页和求职信息网页
  • 【Linux笔记】——线程同步条件变量与生产者消费者模型的实现
  • Go 与 Gin 搭建简易 Postman:实现基础 HTTP 拨测的详细指南
  • window自带截图快捷键
  • Flutter与Kotlin Multiplatform(KMP)深度对比及鸿蒙生态适配解析
  • ubuntu防火墙命令和放行ssh端口
  • VueUse/Core:提升Vue开发效率的实用工具库
  • Popeye
  • muduo库TcpServer模块详解
  • 深入理解TCP与UDP:协议对比、头部结构与连接管理
  • WebSocket解决方案的一些细节阐述
  • WebSocket实时双向通信:从基础到实战
  • LlamaIndex中应用自定义提示词提升回答质量
  • 【25软考网工】第六章(7)网络安全防护系统
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的去中心化商业扩散研究
  • 【C++】map和set的使用
  • @JsonProperty和@JSONField 使用
  • 5.18 打卡
  • 做网站哪个部分/实时新闻
  • 做网站工资待遇如何/上海关键词优化公司bwyseo
  • 公司建设网站价格多少钱/如何推广产品
  • 电影购买网站怎么设计/做网页
  • 企业网站打不开什么原因/企业网站优化报告
  • 泰安最新通告今天/百度seo营销推广