解析C#中的常量及若何在C#編程中界說常量。本站提示廣大學習愛好者:(解析C#中的常量及若何在C#編程中界說常量)文章只能為提供參考,不一定能成為您想要的結果。以下是解析C#中的常量及若何在C#編程中界說常量正文
常量是在編譯時已知並在法式的生計期內不產生更改的弗成變值。常量應用 const 潤飾符停止聲明。只要 C# 內置類型(System.Object 除外)可以聲明為 const。
用戶界說的類型(包含類、構造和數組)不克不及為 const。請應用 readonly 潤飾符創立在運轉時初始化一次即弗成再更改的類、構造或數組。
C# 不支撐 const 辦法、屬性或事宜。
可使用列舉類型為整數內置類型(例如 int、uint、long 等等)界說定名常量。
常量必需在聲明時初始化。例如:
class Calendar1 { public const int months = 12; }
在此示例中,常量 months 一直為 12,弗成更改,即便是該類本身也不克不及更改它。現實上,當編譯器碰到 C# 源代碼(例如 months)中的常量潤飾符時,將直接把文本值調換到它生成的中央說話 (IL) 代碼中。由於在運轉時沒有與常量聯系關系的變量地址,所以 const 字段不克不及經由過程援用傳遞,而且不克不及在表達式中作為左值湧現。
System_CAPS_note留意
當援用在其他代碼如 DLL 中界說的常量值時應非常謹嚴。假如新版本的 DLL 為常量界說了新的值,法式仍將保存舊的文本值,直到針對新版本從新編譯法式。
可以同時聲明多個雷同類型的常量,例如:
class Calendar2 { const int months = 12, weeks = 52, days = 365; }
假如不會形成輪回援用,用於初始化一個常量的表達式可以援用另外一個常量。例如:
class Calendar3 { const int months = 12; const int weeks = 52; const int days = 365; const double daysPerWeek = (double) days / (double) weeks; const double daysPerMonth = (double) days / (double) months; }
常量可標志為 public、private、protected、internal 或 protectedinternal。這些拜訪潤飾符界說類的用戶拜訪該常量的方法。有關更多信息,請拜見 拜訪潤飾符(C# 編程指南)。
由於常量值對該類型的一切實例是雷同的,所以常量被看成 static 字段一樣拜訪。不應用 static 症結字聲明常量。未包括在界說常量的類中的表達式必需應用類名、一個句點和常量名來拜訪該常量。例如:
int birthstones = Calendar.months;
若何在 C# 中界說常量
常量是在編譯時設置其值而且永久不克不及更改其值的字段。 應用常量可認為特別值供給成心義的稱號以取代數字文本(“幻數”)。
若要界說整數類型(int、byte 等)的常量值,請應用列舉類型。 有關更多信息,請拜見 enum(C# 參考)。
若要界說非整型常量,一種辦法是將它們分組到單個名為 Constants 的靜態類中。 這請求對常量的一切援用都應用該類名作為前綴,以下面的示例所示。
示例
static class Constants { public const double Pi = 3.14159; public const int SpeedOfLight = 300000; // km per sec. } class Program { static void Main() { double radius = 5.3; double area = Constants.Pi * (radius * radius); int secsFromSun = 149476000 / Constants.SpeedOfLight; // in km } }
應用類名限制符有助於確保您和應用常量的其別人懂得到它是常量而且不克不及修正。