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

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.xdnf.cn/news/7111.html

相关文章:

  • Spring Cloud Sentinel 快速入门与生产实践指南
  • 【U-boot 命令使用】
  • 【c库主要功能】
  • 智能工具管理系统|DW-S308系统组成
  • day 29
  • 【数据结构】2-2-2 顺序表的插入删除查找
  • 类魔方 :多变组合,灵活复用
  • 生命之树--树形dp
  • 采用DHCP动态分配IP地址,如果某主机开机后没有得到DHCP服务器的响应。则该主机获取的IP地址为?
  • 七、xlib窗口渲染
  • Git版本管理命令reset
  • <STC32G12K128入门第十七步>获取Ultralight C卡七字节数据
  • Markdown 简历生成器——ResumeCraft 开发历程分享
  • C语言标准I/O与文件操作
  • C++ for QWidget:自定义的信号和槽
  • QML学习03(Component、Loader)
  • OpenHarmony SIM卡信号值整体流程分析
  • 本地部署代码托管解决方案 Gitea 并实现外部访问
  • 缓冲区的用途 和 fork复制进程
  • 深度解析:AWS NLB 与 ALB 在 EKS 集群中的最佳选择
  • 内容中台智能推荐系统构建与演进
  • Python 装饰器详解
  • 提示工程 - 系统提示(System Prompts)
  • AI日报 - 2025年05月19日
  • Fine-Tuning Llama2 with LoRA
  • STC89C52单片机模拟实现洗衣机控制 Proteus仿真
  • TYUT-企业级开发教程-第一章
  • Science Robotics 封面论文:基于形态学开放式参数化的仿人灵巧手设计用于具身操作
  • 如何完美安装GPU版本的torch、torchvision----解决torch安装慢 无法安装 需要翻墙安装 安装的是GPU版本但无法使用的GPU的错误
  • C++:⾯向对象的三⼤特性