.net框架筆記常數與欄位
一.常數(const)
定義一個常數時,我們必須能夠在編譯時確定它的值.通過編譯後,編譯器將常數的值儲存在其所定義模組的後設資料內.這意味著常數的型別只能是那些編譯器認為的基元型別。(c#中,下面的型別可以稱為基元型別, Boolean.char.byte,sbyte,decimal,int16,uint16,int32,uint32,int64,uint64,single,double以及string,列舉型別由於本身以基元型別形式儲存,故也可以被用來定義常數,但它不是基元型別)
只有基元型別的資料成員在編譯時直接進行初始化.而非基元型別的資料成員只能在執行時呼叫構造器來完成初始化.
常數在執行時不再需要任何的記憶體分配.也不能獲取常數的地址,
二.欄位(readonly)
欄位儲存一個值型別的例項,或一個指向引用型別的引用.在該型別被載入進入一個應用程式時為其分配動態記憶體.
因為欄位是以動態記憶體的形式儲存的.因此只能在執行時刻獲取他們的值,
有隻讀欄位和讀寫欄位兩種.
只讀欄位只能在構造器內被賦值(構造器在物件初次建立時被執行,且只執行一次).對於靜態只讀欄位,則只能在靜態構造器內賦值.
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> 1
2 class SomeType
3 {
4 //一個靜態只讀欄位,它的值將在執行時
5 //類被初始化時計算並儲存在記憶體中
6 public static readonly Random random = new Random();
7
8 //一個靜態讀寫欄位
9 static int numberofWrites = 0;
10
11 //一個例項只讀欄位
12 public readonly string pathName = "untitled";
13
14 //一個例項讀寫欄位
15 public System.IO.FileStream fs;
16
17 public SomeType(string pathName)
18 {
19 //該行修改只讀欄位pathName
20 //因為是在構造器中,所以可以
21 this.pathName = pathName;
22 }
23
24 public String DoSomeThing()
25 {
26 //該行首先讀取靜態讀寫欄位,然後又被賦值
27 numberofWrites = numberofWrites + 1;
28
29 //該行讀取例項只讀欄位
30 return pathName;
31 }
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> 1
2 class SomeType
3 {
4 //一個靜態只讀欄位,它的值將在執行時
5 //類被初始化時計算並儲存在記憶體中
6 public static readonly Random random = new Random();
7
8 //一個靜態讀寫欄位
9 static int numberofWrites = 0;
10
11 //一個例項只讀欄位
12 public readonly string pathName = "untitled";
13
14 //一個例項讀寫欄位
15 public System.IO.FileStream fs;
16
17 public SomeType(string pathName)
18 {
19 //該行修改只讀欄位pathName
20 //因為是在構造器中,所以可以
21 this.pathName = pathName;
22 }
23
24 public String DoSomeThing()
25 {
26 //該行首先讀取靜態讀寫欄位,然後又被賦值
27 numberofWrites = numberofWrites + 1;
28
29 //該行讀取例項只讀欄位
30 return pathName;
31 }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-448597/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- .net框架筆記——屬性框架筆記
- mysql修改表欄位學習筆記MySql筆記
- ES 筆記十九:Query & Filtering 與 多字串多欄位查詢筆記Filter字串
- abap學習筆記-SAP欄位與表的對應關係筆記
- 常見Http首部欄位HTTP
- awk 中的欄位、記錄和變數變數
- 查mysql欄位中的數字記錄MySql
- 學習筆記:數位dp筆記
- 數位DP 學習筆記筆記
- 【學習筆記】數位DP筆記
- fastadmin 新增欄位記圖片欄位AST
- Django筆記十二之defer、only指定返回欄位Django筆記
- 【筆記】oracle 判斷欄位中的中文的方法筆記Oracle
- C#學習筆記-欄位、屬性、索引器C#筆記索引
- mysql表最多欄位數MySql
- abc欄位數的使用
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- Django 常用欄位和引數Django
- ES 筆記二十:單字串多欄位查詢:Dis Max Query筆記字串
- MySQL學習筆記4:完整性約束限制欄位MySql筆記
- 筆記本常見故障與排除方法筆記
- 深入理解JVM讀書筆記一: Java記憶體區域與記憶體溢位異常JVM筆記Java記憶體溢位
- MySQL欄位型別小記MySql型別
- ES 筆記十二: 顯示 Mapping 設定與常見引數筆記APP
- .Net Core 學習筆記1——包、元包、框架筆記框架
- Java 常見記憶體溢位異常與程式碼實現Java記憶體溢位
- C#屬性與欄位C#
- JAVA記憶體區域與記憶體溢位異常Java記憶體溢位
- ES 筆記二十一:單字串多欄位查詢: Multi Match筆記字串
- Java編譯異常捕捉與上報筆記Java編譯筆記
- 《NET CLR via C#》---第七章(常量,讀/寫欄位,可讀欄位)C#
- 【MySql】mysql 欄位個數的限制MySql
- pydantic 欄位欄位校驗
- asp.net集合與列表小筆記ASP.NET筆記
- .net框架筆記型別成員及其訪問限度框架筆記型別
- 機器學習框架ML.NET學習筆記【4】多元分類之手寫數字識別機器學習框架筆記
- 常見的Content-Type欄位的值
- 數論學習筆記 (3):因數與倍數筆記