当前位置: 首页 > 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
http://www.dtcms.com/a/197581.html

相关文章:

  • 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 打卡
  • Android日活(DAU)检测的四大实现方案详解
  • Android 性能优化入门(三)—— 启动速度优化
  • weibo_comment_pc_tool | 我于2025.5月用python开发的评论采集软件,根据帖子链接爬取评论的界面工具
  • 牛客网NC276110题解:小红的数组重排
  • 低延迟与高性能的技术优势解析:SmartPlayer VS VLC Media Player
  • 湖北理元理律师事务所:债务优化服务的四维创新实践
  • C++23 范围迭代器作为非范围算法的输入 (P2408R5)
  • Ubuntu22.04开机运行程序
  • 自动化:批量文件重命名
  • OSI七层模型和TCP/IP的五层(四层模型)