日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#常量和编程实例

發布時間:2025/4/14 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#常量和编程实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C#常量

一?
1?
常量是在編譯時已知并在程序的生存期內不發生更改的不可變值。 常量使用 const 修飾符進行聲明。 只有 C# 內置類型(System.Object 除外)可以聲明為 const。?
用戶定義的類型(包括類、結構和數組)不能為 const。 請使用 readonly 修飾符創建在運行時初始化一次即不可再更改的類、結構或數組。
C# 不支持 const 方法、屬性或事件。
可以使用枚舉類型為整數內置類型(例如 int、uint、long 等等)定義命名常量。 參見 enum。
常量必須在聲明時初始化。 例如:

class Calendar1
{
? ? public const int months = 12;
}


當編譯器遇到 C# 源代碼(例如 months)中的常量修飾符時,將直接把文本值替換到它生成的中間語言 (IL) 代碼中。 因為在運行時沒有與常量關聯的變量地址,所以 const 字段不能通過引用傳遞,并且不能在表達式中作為左值出現。

當引用在其他代碼如 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。 這些訪問修飾符定義類的用戶訪問該常量的方式。?
因為常量值對該類型的所有實例是相同的,所以常量被當作 static 字段一樣訪問。 不使用 static 關鍵字聲明常量。 未包含在定義常量的類中的表達式必須使用類名、一個句點和常量名來訪問該常量。 例如:
int birthstones = Calendar.months;

2
在程序中使用常量至少有3個好處:
a.常量用易于理解的清楚的名稱替代了含義不明確的數字或字符串,使程序更易于閱讀。
b.常量使程序更易于修改。例如,在C#程序中有一個SalesTax常量,該常量的值為6%。如果以后銷售稅率發生變化,把新值賦給這個常量,就可以修改所有的稅款計算結果,而不必查找整個程序,修改稅率為0.06的每個項。
C.常量更容易避免程序出現錯誤。如果要把另一個值賦給程序中的一個常量,而該常量已經有了一個值,編譯器就會報告錯誤。

在C#中定義常量的方式有兩種,一種叫做靜態常量(Compile-time constant),另一種叫做動態常量(Runtime constant)。前者用“const”來定義,后者用“readonly”來定義。

3
有const 的都是常量
const int a=3; 就是常量?
常量賦值后不可以修改。 常量 一般用于 經常使用的變量而且是全局的
常量是在編譯時設置其值并且永遠不能更改其值的字段。?

定義浮點型時,用float,不過后面要加個F,
float x = 1.2356f;
Console.Write(x);

字符常量是括在單引號里,例如,'x',且可存儲在一個簡單的字符類型變量中。一個字符常量可以是一個普通字符(例如 'x')、一個轉義序列(例如 '\t')或者一個通用字符(例如 '\u02C0')。
在 C# 中有一些特定的字符,當它們的前面帶有反斜杠時有特殊的意義,可用于表示換行符(\n)或制表符 tab(\t)。

二 編程實例
1
using System;

namespace DeclaringConstants
{
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? const double pi = 3.14159; // 常量聲明
? ? ? ? ? ? double r;
? ? ? ? ? ? Console.WriteLine("輸入半徑: ");
? ? ? ? ? ? r = Convert.ToDouble(Console.ReadLine());
? ? ? ? ? ? double areaCircle = pi * r * r;
? ? ? ? ? ? Console.WriteLine("半徑: {0}, 面積: {1}", r, areaCircle);
? ? ? ? ? ??
? ? ? ? ? ? Console.Write("按任意鍵繼續 . . . ");
Console.ReadKey(true);
? ? }
}
}

2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace changliang
{
? ? public sealed class SomeLibraryType
? ? {
? ? ? public const Int32 MaxEntriesInList=50 ;?


? ? ? ? //可以同時聲明多個常量
? ? ?public const Int32 month = 12, weeks = 52, days = 365;


? ? ? ? //如果不會造成循環引用,用于初始化一個常量的表達式可以引用另一個常量
? ? ?const double daysPerWeek = (double)days / weeks;
? ? ? ? const double daysPerMonth = (double)days / month; ??
? ? }


class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? //這說明了常量的調用方式
? ? ? ?Console.WriteLine(SomeLibraryType.MaxEntriesInList);
? ? ? ? ? ? ?
? ? ? ? ? ? //不允許修改常量的值
? ? ? ?//常量的版本控制問題,只有重新編譯,常量值才會獲得新值,如果在運行時,如果一個程
? ? ? ?//序集要從另外1個程序集獲得新值,那么不能使用常量,應該使用字段。
? ? ? ?//SomeLibraryType.MaxEntriesInList = 4;
? ? ? ?
? ? ? ?Console.Write("按任意鍵繼續 . . . ");
Console.ReadKey(true);
? ? ? ? }
? ? }
}

3?
using System;

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
? ? ? ??
? ? ? ? Console.Write(area);
? ? ? ? Console.Write("\n");
? ? ? ? Console.Write(secsFromSun);
? ? ? ? Console.Write("\n");
? ? ? ??
? ? ? ? Console.Write("按任意鍵繼續 . . . ");
Console.ReadKey(true);
? ? }
}

4 轉義字符常量示例
using System;

namespace EscapeChar
{
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? Console.WriteLine("Hello\tWorld\n\n");
? ? ? ? ? ??
? ? ? ? ? ? Console.Write("按任意鍵繼續 . . . ");
? ? Console.ReadKey(true);
? ? ? ? }
? ? }

}

上述代碼的運行截圖:








總結

以上是生活随笔為你收集整理的C#常量和编程实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。