網站首頁 編程語言 正文
const和readonly經常被用來修飾類的字段,兩者有何異同呢?
const
1、聲明const類型變量一定要賦初值嗎?
一定要賦初值
public class Student { public const int age; }
生成的時候,會報如下錯:
正確的應該這樣寫:
public class Student { public const int age = 18; }
2、聲明const類型變量可以用static修飾嗎?
不可以
public class Student { public static const int age = 18; }
生成的時候,會報如下錯:
正確的應該這樣寫:
public class Student { public const int age = 18; }
因為const默認是static。
3、運行時變量可以賦值給const類型變量嗎?
不可以
public class Student { public const int age = 18; public Student(int a) { age = a + 1; } }
生成的時候,會報如下錯:
const類型變量是編譯期變量,無法把運行時變量賦值給編譯期變量。
4、const可以修飾引用類型變量嗎?
可以,但只能給引用類型變量賦null值。
public class Student { public const Teacher teacher = new Teacher(); } public class Teacher { }
生成的時候,會報如下錯:
正確的應該這樣寫:
public class Student { public const Teacher teacher = null; } public class Teacher { }
readonly
1、聲明readonly類型變量一定要賦初值嗎?
不一定,既可以賦初值,也可以不賦初值。
以下不賦初值的寫法正確:
public class Student { public readonly int age; }
以下賦初值的寫法也對:
public class Student { public readonly int age = 18; }
2、運行時變量可以賦值給readonly類型變量嗎???
可以
以下在構造函數中給readonly類型變量賦值是可以的:
public class Student { public readonly int age = 18; public Student(int a) { age = a; } }
3、聲明readonly類型變量可以用static修飾嗎???
可以的
以下寫法正確:
public class Student { public static readonly int age = 18; }
總結
const修飾符:
- 用const修飾的變量是編譯期變量
- 不能把運行時變量賦值給const修飾的變量
- const修飾的變量在聲明時要賦初值
- const修飾的變量不能在前面加static修飾
- cosnt也可以修飾引用類型變量,但一定要給引用類型變量賦null初值
readonly修飾符:???
- 用readonly修飾的變量是運行時變量
- 可以把運行時變量賦值給readonly修飾的變量
- readonly修飾的變量在聲明時,既可以賦初值,也可以不賦初值
- readonly修飾的變量可以在前面加static修飾符
原文鏈接:https://www.cnblogs.com/darrenji/p/3835461.html
相關推薦
- 2022-07-15 go?GCM?gin中間件的加密解密文件流處理_Golang
- 2022-09-26 快速搭建 ElasticSearch學習環境
- 2023-02-02 一文帶你深入了解C++中的類型轉換_C 語言
- 2021-11-21 關于.NET6?Minimal?API的使用方式詳解_實用技巧
- 2022-10-29 SQL?Server主鍵約束(PRIMARY?KEY)_MsSql
- 2022-04-01 簡單聊聊C++中回調函數的實現_C 語言
- 2022-01-31 (數據)圖像預處理——image augmentation圖像增廣之cutout、Mixup、Cut
- 2022-09-20 Tomcat服務器配置https認證(使用keytool生成證書)_Tomcat
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支