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

004集——静态常量和动态常量——C#学习笔记

首先普及一个小白使用的小技巧:tab键可以自动输出系统显示的引导字符。

常量是使用 const 关键字来定义的 。定义一个常量的语法如下:

const <data_type> <constant_name> = value;
 下面的代码演示了如何在程序中定义和使用常量:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{class SampleClass{public int x;public int y;public const int c1 = 5;public const int c2 = c1 + 5;public SampleClass(int p1, int p2){x = p1;y = p2;}}class sc2{ static void Main()//主函数必须在一个类里面{SampleClass mC = new SampleClass(11, 22);Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);Console.WriteLine("c1 = {0}, c2 = {1}",SampleClass.c1, SampleClass.c2);Console.ReadKey();}}
}

静态常量(编译时常量) const
在编译时就确定了值,必须在声明时就进行初始化且之后不能进行更改,可在类和方法中定义。定义方法如下:

const double a=3.14;// 正确声明常量的方法
const int b;         // 错误,没有初始化
动态常量(运行时常量) readonly
在运行时确定值,只能在声明时或构造函数中初始化,只能在类中定义。定义方法如下:

class Program
{readonly int a=1;  // 声明时初始化readonly int b;    // 构造函数中初始化Program(){b=2;}static void Main(){}
}

 Console.WriteLine("a =" +  program1.a);//字符串和数字的连接符可用“+”表示,不可用“&”

静态常量与动态常量的使用场景

在下面两种情况下,可以使用 const 常量:

  • 取值永久不变(比如圆周率、一天包含的小时数、地球的半径等)。
  • 对程序性能要求非常苛刻。

除此之外的其他情况都应该优先采用 readonly 常量。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【通信原理】matlab中qammod的介绍
  • 作业8.9
  • ES架构模型
  • AI大模型赋能开发者|海云安创始人谢朝海受邀在ISC.AI 2024大会就“大模型在软件开发安全领域的应用”主题发表演讲
  • Java内存模型-清晰剖析
  • 【数据结构】三、栈和队列:6.链队列、双端队列、队列的应用(树的层次遍历、广度优先BFS、先来先服务FCFS)
  • Spring中dbUtil的概念和搭建使用
  • docker pull实现断点续传
  • 周末总结(2024/08/10)
  • Element UI导航菜单刷新就复原问题解决方法~
  • Web安全(一)-靶场搭建过程-基于docker
  • 服务器端常见响应码
  • 38-1、HCIE补充实验:端口隔离 二层隔离三层互通+二层三层均隔离
  • 【Linux】重谈页表寻址|深入理解物理内存和页表的映射|页框|CPU|CR3|MMU
  • 大数据技术——实战项目:广告数仓(第四部分)
  • java多线程
  • JS笔记四:作用域、变量(函数)提升
  • Laravel 实践之路: 数据库迁移与数据填充
  • NSTimer学习笔记
  • Twitter赢在开放,三年创造奇迹
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 测试开发系类之接口自动化测试
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 后端_MYSQL
  • 如何利用MongoDB打造TOP榜小程序
  • 算法-插入排序
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #QT(智能家居界面-界面切换)
  • #stm32驱动外设模块总结w5500模块
  • (+4)2.2UML建模图
  • (1)svelte 教程:hello world
  • (33)STM32——485实验笔记
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (LLM) 很笨
  • (ros//EnvironmentVariables)ros环境变量
  • (第27天)Oracle 数据泵转换分区表
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (规划)24届春招和25届暑假实习路线准备规划
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三)c52学习之旅-点亮LED灯
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • . Flume面试题
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET CORE Aws S3 使用
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NET 读取 JSON格式的数据
  • .Net的C#语言取月份数值对应的MonthName值
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net转前端开发-启航篇,如何定制博客园主题
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @JsonFormat 和 @DateTimeFormat 的区别