1.結構體
struct 類型是一種值類型,通常用來封裝小型相關變量組,例如,矩形的坐标或庫存商品的特征。下面的示例顯示了一個簡單的結構聲明。
public struct Book
{
public decimal price;
public string title;
public string author;
}
結構還可以包含構造函數、常量、字段、方法、屬性、索引器、運算符、事件和嵌套類型,但如果同時需要上述幾種成員,則應當考慮改為使用類作為類型。
結構可以實作接口,但它們無法繼承另一個結構。是以,結構成員無法聲明為 protected。
2.常量
const 關鍵字用于修改字段或局部變量的聲明。它指定字段或局部變量的值是常數,不能被修改。例如:
const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";
常數表達式是在編譯時可被完全計算的表達式。是以,對于引用類型的常數,可能的值隻能是 string 和 null。
常數聲明可以聲明多個常數,例如:
public const double x = 1.0, y = 2.0, z = 3.0;
不允許在常數聲明中使用 static 修飾符。
常數可以參與常數表達式,如下所示:
public const int c1 = 5;
public const int c2 = c1 + 100;
readonly 關鍵字與 const 關鍵字不同。const 字段隻能在該字段的聲明中初始化。readonly 字段可以在聲明或構造函數中初始化。是以,根據所使用的構造函數,readonly 字段可能具有不同的值。另外,const 字段是編譯時常數,而readonly 字段可用于運作時常數,如下面的代碼行所示: 3.short整形類型 short 關鍵字表示一種整數資料類型,該類型根據下表顯示的大小和範圍存儲值。
從int 隐式轉換為short。 使用 short 強制轉換可保證調用正确的類型,例如: 存在從 short 到 int、long、float、double 或decimal 的預定義隐式轉換。不能将存儲大小更大的非文本數值類型隐式轉換為short short x = 5, y = 12; 則 以下指派語句将産生一個編譯錯誤,原因是指派運算符右側的算術表達式在預設情況下的計算結果為 int 類型。 若要解決此問題,請使用強制轉換: 但是,在目标變量具有相同或更大的存儲大小時,使用下列語句是可能的: 不存在從浮點型到 short 的隐式轉換。例如,除非使用顯式強制轉換,否則以下語句将生成一個編譯器錯誤: short x = 3.0; // Error: no implicit conversion from double short y = (short)3.0; // OK: explicit conversion 4.委托(或者“代理”) 待完善這個!!!!!! 5.裝箱 拆箱 裝箱和拆箱使值類型能夠被視為對象。對值類型裝箱将把該值類型打包到 Object 引用類型的一個執行個體中。這使得值類型可以存儲于垃圾回收堆中。如下,把整形值類型裝箱成object引用類型。即整型變量 被“裝箱”并指派給對象 。
取消裝箱并将其指派給整型變量 :
性能 相對于簡單的指派而言,裝箱和取消裝箱過程需要進行大量的計算。對值類型進行裝箱時,必須配置設定并構造一個全新的對象。次之,取消裝箱所需的強制轉換也需要進行大量的計算。總之:拆箱和裝箱的計算量比較大,盡量少使用。 6.for循環 int iSum = 1; Console.Write("請輸入一個正整數:"); int j = int.Parse(Console.ReadLine()); for (int i = 1; i <= j; i++) { iSum *= i; } Console.Write("|第一種for循環|"); Console.WriteLine("從1到{0}的階乘是{1}。",j,iSum); iSum = 1; int k = 1; for (; ; ) { if (k > j) { break; } iSum *= k; k++; } Console.Write("|第二種for循環|"); Console.WriteLine("從1到{0}的階乘是{1}", j, iSum); 上述兩個for循環的結果一樣,都是求取1到n的階乘。 |