C#: const与readonly的用法和区别解析

从零到一:高通QCS6490边缘AI开发板的Linux生态构建与实战避坑指南 本文详细介绍了在高通QCS6490边缘AI开发板上构建Linux生态系统的完整流程,包括开发环境准备、系统镜像构建与烧录、AI运行时环境配置、模型部署优化以及性能调试。重点解析了如何利用Hexagon DSP的高达12 TOPS AI算力,并提供了实战中的避坑指南和性能优化技巧,帮助开发者高效实现边缘AI应用从概念验证到产品落地的全过程。 阅读详情

  C#: const与readonly的用法和区别解析 收藏
总结一下const和readonly:

const和readonly的值一旦初始化则都不再可以改写;
const只能在声明时初始化;readonly既可以在声明时初始化也可以在构造器中初始化;
const隐含static,不可以再写static const;readonly则不默认static,如需要可以写static readonly;
const是编译期静态解析的常量(因此其表达式必须在编译时就可以求值);readonly则是运行期动态解析的常量;
const既可用来修饰类中的成员,也可修饰函数体内的局部变量;readonly只可以用于修饰类中的成员.
前面是我从网上摘录的,文字太多,懒得自己再总结和打字了.

注意,第四点尤为重要,我用以下代码来说明和验证:

1.建立文本文件,然后改成.cs文件-lib.cs:

2.在命令行中输入: csc /t:library lib.cs,就会生成一个lib.dll文件.


3.建立文本文件,然后改成.cs文件-demo.cs:

4.在命令行中输入: csc /r:lib.dll demo.cs,也就会生成一个demo.exe文件.


双击,结果如下:


3.14


3.14


5.更改lib.cs为:

6.再次双击demo.exe文件,结果却如下:


3.14


3.1415


(注: 直接双击demo.exe是直接运行,不再编译,上结果也就是运行期结束的结果,相当于跳过了编译)


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/xiaofengsheng/archive/2009/10/12/4659892.aspx

(27)FPGA实现AD7768接口(六) AD7768/AD7768-4 为8通道和4通道24位同步采样模数转换器(ADC)。通过可选的功耗模式和数字滤波器选项可重新配置AD7768/AD7768-4以适应多种应用,如工业输入/输出模块、仪器仪表、音频测试、控制回路和状态监控。FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。 阅读详情

相关推荐

ESP-Mesh-Lite vs ESP-Mesh:如何选择适合你的物联网组网方案?

本文深入对比了乐鑫ESP-Mesh-Lite与ESP-Mesh两种物联网组网方案的核心差异。重点解析了ESP-Mesh-Lite分布式协议栈架构的优势,即每个节点拥有独立IP,可直接访问外部网络,极大简化了应用层开发。文章从网络架构、性能、开发体验及适用场景等多维度进行分析,为开发者根据项目需求(如分布式数据采集、智能家居或集中控制网络)选择最合适的方案提供了清晰的决策框架。

pluto的博客 817

关于编译器和静态分析的一些课程

陆陆续续收集了一些课程,主要是编译器和静态分析方面的,在这里分享给大家,也给自己做个资料存档。 国外的一些课程: 1、Stanford编译器课程系列 CS143:CS143: Compilers CS243:CS243 - Advanced Compilers CS343:CS 343 这个系列课程,共有三门课。其中,CS143讲的是编译器的基础知识;CS142讲的是程序分析和优化技术...

SHINING的博客 3739

基于Java的高校校园点餐系统

本文介绍了一个基于Java技术开发的高校校园点餐系统,该系统以B/S结构为基础,采用MySQL作为数据库,实现了一个高效、便捷的在线点餐平台。系统主要面向三类用户:管理员、用户和食堂工作人员,提供包括用户管理、食堂管理、菜单管理、订单管理等在内的多项功能。通过系统的具体测试,验证了其可行性和有效性,为高校师生提供了一个科学化、系统化的点餐服务。高校校园点餐系统的开发和实现,不仅提高了校园餐饮服务的效率和质量,也为师生提供了一个更加便捷的点餐体验。

a632341031的博客 840

什么叫编译时和运行时

以前经常听说编译时和运行时的概念.但没太搞明白具体代表啥意思.后面花了点时间研究了下.总算知道个大概意思了. 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,C#中只有CLR能识别的MSIL.另外还有啥链接器.汇编器.为了了便于理解我...

爱.NET 1667

CDO批量处理nc文件:5分钟搞定CMIP6数据双线性插值(附完整代码)

本文详细介绍了如何使用CDO工具链中的`remapbil`命令,快速实现CMIP6数据的批量双线性插值处理。通过环境配置、核心操作步骤、高级优化技巧及典型报错解决方案,帮助科研人员高效处理大规模nc文件,显著提升气象数据处理效率。

weixin_29267307的博客 292

AI 生成 CAN 通信测试用例实战

本文分享了AI辅助汽车电子测试用例编写的实战经验。通过某车企CAN网络测试项目案例,对比传统方式(需27天)与AI辅助方式(仅5天)的效率差异,展示81%的效率提升。文章详细介绍了从DBC文件提取信号信息的方法,包括DBC文件结构解析、信号定义说明,并提供了完整的Python解析脚本代码,可将信号信息导出为JSON或Excel格式,为后续AI批量生成测试用例奠定基础。

小明的博客 694

执行篇:解析JDK 7的动态类型语言支持

Java虚拟机的字节码指令集的数量自从Sun公司的第一款Java虚拟机问世至JDK 7来临之前的十余年时间里,一直没有发生任何变化[注1]。随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambd

a_dreaming_fish的博客 3321

【升级U8+】不能将值 NULL 插入列 ‘VT_ID‘,表 ‘VoucherItems‘;列不允许有 Null 值。

不能将值 NULL 插入列 ‘VT_ID’,表 ‘UFDATA_006_2012.dbo.VoucherItems’;列不允许有 Null 值。INSERT 失败。

努力不懈的为广大客户提供优质的产品与真诚、贴心、专业的服务! 517

readonly和const的区别

部分开发者会认为,readonly修饰的变量是不能修改的,在以后的开发中从不对ReadOnly的变量进行修改,形成思维定势,这个观念是错误的。 首先要明确一点:更改!=重新分配(赋值) 对于简单类型(如int),更改是等于重新赋值,因为默认操作符只有=, 但于对于复杂类型,就不一定了。 例如:对于集合类型,可以增加、移除、清空内容。 例子如下: public interface IA { } pu...

陈云佳的专栏 4523

vue3(微信公众号H5网页):调用wx.config报错config:fail,invalid signature,在vue3 h5项目开发微信内置浏览器JS-SDK/JS-API提示签名失效/错误

微信公众号网页,vue3 H5网页,uniapp h5,wx.config 报错:config:fail,invalid signature?无效签名,微信JSSDK分享接口中wx.config 出现invalid signature问题的解决办法,微信公众号签名失效,wx.config中出现invalid signature的解决方法,H5页面调起微信的拍照与分享功能,导致的config:invalid signature这个错误的解决办法,微信网页调用分享功能出现config:fail,invalid

✅ 精选推荐文章 5051

生成式AI;语义通信技术;生成式AI辅助的云边协同算法及其可解释性

生成式AI 语义通信技术 生成式AI辅助的云边协同算法及其可解释性 一、端到端设计的物理层内生智能 二、生成式语义通信 三、生成式数字孪生网络 四、生成式AI辅助的云边协同算法及其可解释性 五、未来可能的研究方向

ZhangJiqun&191cm&85kg 428

C# 中const和readonly的区别

(1) const修饰的常量在声明的时候必须初始化;readonly修饰的常量则可以延迟到构造函数初始化 (2) const修饰的常量在编译期间就被解析,即常量值被替换成初始化的值;readonly修饰的常量则延迟到运行的时候 此外const常量既可以声明在类中也可以在函数体内,但是static readonly常量只能声明在类中。 (3) const默认就是静态的,而readonly如果设置成静态的就必须显示声明。 (4) const修饰的值的类型也有限制,它只能为下列类型之一(或能够转换为下列类型):s

weixin_46879188的博客 3164

论deepseek软件底层原理

如处理医学文本时,将任务分配给擅长医学知识处理的专家,避免通用模块处理的低效性,极大提升计算效率与任务处理的针对性。教师模型复杂且强大,学生模型结构简单。协作处理:多模块协作时,建立数据流通与交互机制,各模块按顺序或并行处理数据,不断传递与更新中间结果,共同完成复杂任务。(一)输入处理与任务判断 输入预处理:接收输入数据,如用户文本提问,首先进行清洗,去除噪声数据、特殊字符等。任务分类:通过MoE架构“路由器”,依据输入数据特征,判断任务所属领域与类型,如文本分类、情感分析等,为后续处理模块选择提供依据。

欢乐打代码! 2738

深入解析 C# 中 const 与 readonly 的核心区别

摘要:C#中const与readonly虽都表示"常量",但存在本质区别。const是编译期常量,必须声明时赋值且值被内联到IL中,修改后需重新编译引用方;readonly是运行时常量,可在构造函数赋值,通过字段访问,修改后只需重编译类库。const支持字段和局部变量,天然静态;readonly仅修饰字段,默认实例级。引用类型方面,const仅支持string/null,readonly支持任意引用类型但仅锁定引用地址。

bugcome的博客 1208

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C#中const、static、readonly的区别

一、 const与readonly ①【const】其修饰的字段只能在自身声明时初始化。 ②【Readonly】是只读变量,属于运行时变量,可以在类初始化的时候改变它的值。该类型的字段,可以在声明或构造函数中初始化。 ③小结: 《1》根据所使用的构造函数,readonly 字段可能具有不同的值。 《2》对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时...

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 3305

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C#——const与readonly的区别

文章1: 我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还可以通过静态构造函数来赋值。明白了这个本质区别,我们就不难看出下面的语句

shineHoo的专栏 9899

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

90% 的人答不清:C#中const 和 readonly 有什么区别?

摘要: const和readonly虽均表示“不可变”,但核心差异在于const是编译时常量,值直接内联到调用方程序集,而readonly是运行时只读字段。const仅支持基元类型,需声明时赋值,修改后依赖方必须重新编译;readonly支持任意类型,可在构造函数赋值,修改后无需重新编译。公共库设计时,优先用readonly避免版本风险,仅对绝对不变的数学/协议常量使用const。选择取决于对“永远不变”的确定性,架构决策需权衡性能与灵活性。

软件开发学习交流 1177

const 与readonly区别

前言:         这个问题我们在平常开发工作中可能不太注意,但在面试官那里可能被经常提及!深入理解他们对我们的开发有很大的指导性.提升程序的性能以及减少出错率! 讲义:         当我们理解const与readonly的区别时,可能牵涉出C#语言的两种常量类型,静态常量与动态常量.         静态常量是编译器在编译期间就对其进行解析的常量!所以我们在声明静态常量的时候就要

IT部落 3295

C# static const和readonly区别

Const 定义的是静态常在对象初始化的时候赋值.以后不能改变它的值.属于编译时常量。 Static 定义的是静态变量.可以再外部改变它的值.. Readonly 是只读变量.属于运行时变量.可以在类初始化的时候改变它的值.. const 和 static 不能在一起用 我们都知道,const和static readonly的确非常像:通过类名而不是对象名进行访问,在程式中只读等等

HelloLWei的专栏 1301

const与readonly的区别

尽管你写了很多年的C#的代码,但是可能当别人问到你const与readonly的区别时候,还是会小小的愣一会吧~ 笔者也是在看欧立奇版的《.Net 程序员面试宝典》的时候,才发现自己长久以来竟然在弄不清出两者的情况下,混用了这么长的时间。的确,const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写。那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型:静态常量(compile-time constant...

DHC1987的博客 1046

Const 和 static readonly的区别

static readonly需要注意的一个问题是,对于一个static readonly的Reference类型,只是被限定不能进行赋值(写)操作而已。而对其成员的读写仍然是不受限制的。 public static readonly MyClass myins = new MyClass(); … myins.SomeProperty = 10; //正常 myins = new MyClas...

一杯敬明天 1340

C# readOnly 和 Const的区别

记录C#知识点

weixin_50702814的博客 335

深入理解C#中的readonly与const:区别与应用场景

本文深入探讨了C#中readonly与const两个关键字的区别及其应用场景。readonly和const都用于声明不可变的变量,但它们之间存在关键差异。const关键字用于声明编译时常量,必须在声明时赋值,且其值必须是编译时常量表达式,适用于数学常量、物理常量等需要在编译时确定其值且不会改变的场景。而readonly关键字则用于声明只读字段,这些字段可以在声明时或在构造函数中赋值,但在对象实例化之后其值就不能再被修改,适用于需要在运行时或基于某些条件确定其值的只读字段,如配置数据、只读属性等。文章通过具体

m0_58750788的博客 2070

C# const和static readonly区别

我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。 二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还可以通过静态构造函数来赋值。 明白了这个本质区别,我们就不难看出下面的语句中static readonly和...

oshan2012的博客 534

C#中的静态常量(const)和动态常量(static和readonly)用法和区别

C#中的静态常量(const)和动态常量(static和readonly)用法和区别 C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景。 工作原理 readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量。 const为编译时常量,程序编译时将对常量值进行解析,并...

Junit的博客 1384

c#中const与readonly区别

const 的概念就是一个包含不能修改的值的变量。 const 字段是编译时常数,而 readonly 字段可用于运行时常数。 const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。 const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的。 const只能是数字或者字符串的字面值,...

784
上一篇: ASP.NET网络编程中常用到的27个函数集
下一篇: 你必须知道的25个C#基础概念
Csdbfans
博客等级 码龄18年 73粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值