成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# const常量詳細介紹

開發 后端
這里介紹C# const常量,使用Visual C#在 Main()里面使用IntelliSence插入Constant的相關field的時候,發現ReadonlyInt和 InstantReadonlyInt需要指定Constant的實例對象。

C#語言有很多值得學習的地方,這里我們主要介紹C# const常量,包括介紹readonly和const所修飾的變量等方面。

一般情況下,如果你需要聲明的常量是普遍公認的并作為單個使用,例如圓周率,黃金分割比例等。你可以考慮使用C# const常量,如:public const double PI = 3.1415926;。如果你需要聲明常量,不過這個常量會隨著實際的運行情況而決定,那么,readonly常量將會是一個不錯的選擇,例如上面***個例子的訂單號Order.ID。

另外,如果要表示對象內部的默認值的話,而這類值通常是常量性質的,那么也可以考慮const。更多時候我們對源代碼進行重構時(使用Replace Magic Number with Symbolic Constant),要去除魔數(Magic Number)的影響都會借助于const的這種特性。

對于readonly和const所修飾的變量究竟是屬于類級別的還是實例對象級別的問題,我們先看看如下代碼:

  1. using System;  
  2.  
  3. namespace ConstantLab  
  4. {  
  5. class Program  
  6. {  
  7. static void Main(string[] args)  
  8. {  
  9. Constant c = new Constant(3);  
  10. Console.WriteLine("ConstInt = " + Constant.ConstInt.ToString());  
  11. Console.WriteLine("ReadonlyInt = " + c.ReadonlyInt.ToString());  
  12. Console.WriteLine("InstantReadonlyInt = " + c.InstantReadonlyInt.ToString());  
  13. Console.WriteLine("StaticReadonlyInt = " + Constant.StaticReadonlyInt.ToString());  
  14.  
  15. Console.WriteLine("Press any key to continue");  
  16. Console.ReadLine();  
  17. }  
  18. }  
  19.  
  20. class Constant  
  21. {  
  22. public Constant(int instantReadonlyInt)  
  23. {  
  24. InstantReadonlyInt = instantReadonlyInt;  
  25. }  
  26.  
  27. public const int ConstInt = 0;  
  28.  
  29. public readonly int ReadonlyInt = 1;  
  30.  
  31. public readonly int InstantReadonlyInt;  
  32.  
  33. public static readonly int StaticReadonlyInt = 4;  
  34. }  

使用Visual C#在 Main()里面使用IntelliSence插入Constant的相關field的時候,發現ReadonlyInt和 InstantReadonlyInt需要指定Constant的實例對象;而ConstInt和StaticReadonlyInt卻要指定 Constant class(參見上面代碼)。可見,用const或者static readonly修飾的常量是屬于類級別的;而readonly修飾的,無論是直接通過賦值來初始化或者在實例構造函數里初始化,都屬于實例對象級別。

一般情況下,如果你需要表達一組相關的編譯時確定常量,你可以考慮使用枚舉類型(enum),而不是把多個C# const常量直接嵌入到class中作為field,不過這兩種方式沒有絕對的孰優孰劣之分。

  1. using System;  
  2.  
  3. enum CustomerKind  
  4. {  
  5. SuperVip,  
  6. Vip,  
  7. Normal  
  8. }  
  9.  
  10. class Customer  
  11. {  
  12. public Customer(string name, CustomerKind kind)  
  13. {  
  14. m_Name = name;  
  15. m_Kind = kind;  
  16. }  
  17.  
  18. private string m_Name;  
  19. public string Name  
  20. {  
  21. get { return m_Name; }  
  22. }  
  23.  
  24. private CustomerKind m_Kind;  
  25. public CustomerKind Kind  
  26. {  
  27. get { return m_Kind; }  
  28. }  
  29.  
  30. public override string ToString()  
  31. {  
  32. return "Name: " + m_Name + "[" + m_Kind.ToString() + "]";  
  33. }  

【編輯推薦】

  1. C# lock關鍵字敘述
  2. C#.Net FrameWork簡介
  3. C# new和override簡單描述
  4. C#值類型和引用類型淺談
  5. C#標識符簡單分析
責任編輯:佚名 來源: CSDN論壇
相關推薦

2009-08-27 15:17:40

C# const變量

2009-08-10 16:30:56

C# BitmapDa

2009-08-12 15:34:40

C# DBNull

2011-06-21 10:37:56

const

2009-08-07 16:10:20

C#調用API

2009-08-03 18:49:17

C#和Java

2009-08-21 15:16:23

C#使用指針

2009-08-20 15:26:42

C#循環語句

2009-08-24 18:21:23

C# ListView

2009-08-21 09:23:11

C# GDI+

2009-08-14 17:04:50

C#類型系統

2009-08-13 13:38:30

C#命名規范

2009-08-27 14:32:15

C#編寫ActiveX

2009-08-06 14:59:36

C#編譯器

2009-08-25 17:28:23

C#創建DataSet

2009-08-13 15:40:28

C#基礎知識

2011-06-08 13:35:18

C#數據類型

2009-08-27 17:31:44

C#創建Windows

2017-10-30 16:50:41

Linuxconst

2011-07-20 16:57:05

C++const
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本三级电影在线免费观看 | 91亚洲精华国产 | 国产一区在线免费观看 | 91视频进入 | 国产偷久久一级精品60部 | 精品一区二区三区视频在线观看 | 亚洲av毛片 | 欧美一区二区在线播放 | 色婷婷亚洲 | 国产激情在线 | 中文字幕一区在线观看视频 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 欧美久久一区 | 成人小视频在线观看 | 国产中文字幕av | 日韩在线小视频 | 亚洲综合在线一区二区 | 亚洲免费在线观看 | 91 久久 | 久久精品亚洲 | 色资源在线观看 | 国产91在线 | 欧美 | 日本在线一区二区三区 | 色狠狠桃花综合 | 91传媒在线观看 | 国产成人在线播放 | 亚洲福利片| 亚洲男人的天堂网站 | 99久久精品免费看国产免费软件 | 一区二区三区四区在线播放 | 国产成人精品免费视频大全最热 | 欧美成人激情视频 | 久久88| 欧美日产国产成人免费图片 | 久久亚洲欧美日韩精品专区 | 久久香蕉精品视频 | 色婷婷婷婷色 | 成人av在线大片 | 亚洲天堂一区二区 | 午夜99| 免费一级做a爰片久久毛片潮喷 |