var: 初始化必須有賦值,var i;(錯的)。 var類型的對象運行過程中不允許再更改類型。(如:var i=1; i="hello!" 會出錯) var只聲明局部變數。 dynamic: 初始化時可以不賦值。 dynamic類型的對象運行過程中可以給該類型。(如:dynamic i=1; i=... ...
var:
- 初始化必須有賦值,var i;(錯的)。
- var類型的對象運行過程中不允許再更改類型。(如:var i=1; i="hello!" 會出錯)
- var只聲明局部變數。
dynamic:
- 初始化時可以不賦值。
- dynamic類型的對象運行過程中可以給該類型。(如:dynamic i=1; i="hello!" 不出錯)
- 可聲明為全局變數。
VAR和DYNAMIC:一般當不確定變數類型時使用。
decimal:
高精度小數,範圍:1.0*10^-28到7.9*10^28,精度28位。一般用於表示money。float/double精度7/15位,用這float/double兩個類型表示貨幣時它會幫你"抹零"。
decimal預設值:0.0M
float預設值:0.0F
double預設值:0.0D
char:
char字元型賦值有3中
- char c='d';
- char c='\x0068'; 十六進位
- char c='\u0068'; Unicode表示
char c=(char)68; 整形轉換char。
預設值:'\x0000'
八進位和十六進位:
C#中整形只用10進位表示,用8進位格式說明符"o"或"O"和16進位格式說明符是"x"或"X"編譯會出錯,(如:int i = o73;出錯)。
當需要輸出8進位或者16進位時用i.ToString("x")即可。
顯示2進位WriteLine(Convert.ToString(231,2));
顯示8進位WriteLine(Convert.ToString(231,8)) ;
顯示16進位WriteLine(Convert.ToString(231,16));
顯示16進位WriteLine(i.ToString("x"));顯示小寫。
顯示16進位WriteLine(i.ToString("X"));顯示大寫。
PadLeft和PadRight
輸出字元串的左邊或者右邊填充空格實現右對齊或者左對齊。
ToString().PadLeft(8); 輸出字元串長度為8,左邊補空格。
Parse:
parse解析,將數字的字元串表示形式等效轉換為數字。
如:int.parse(string); double.parse(string); decimal.parse(string)等等。
var和dycimal沒有parse方法。
註意:當16進位數字的字元串轉換為int時用Parse(string,System.Globalization.NumberStyle)方法,第二個枚舉參數選HexNumber即可。
那2進位字元串和8進位字元串怎麼解析成int呢?目前還不知道呢……哪位大師說一下???
Encoding:
字元串和位元組數組之間的轉換。System.Text.Encoding類
byte[] ← GetBytes(string)方法,將字元串轉換為位元組數組。
string ← GetString(byte[])方法,將位元組數組轉換為字元串。
Encoding屬性:
Encoding.Default 獲取系統的當前ANSI代碼頁的編碼
Encoding.UTF7獲取UTF7編碼格式
Encoding.UTF8獲取UTF8編碼格式
Encoding.ASCII獲取7位ASCII字元集的編碼
Encoding.Unicode獲取特定順序的Unicode格式的編碼
byte[] b=System.Text.Encoding.Unicode.GetBytes(s);
enum枚舉:
用戶自定義數據類型。enum枚舉的值從1開始,除了自定義。用逗號","隔開,可賦值整形值。
字元串轉換特定枚舉:
object ← Enum.parse(type enumType,string value);
如:color col=(color)Enum.parse(typeof(color),"white");
註意:如果字元串跟枚舉不對應,會出錯。
enum e
{
}
struct結構:
用戶自定義數據類型,結構類型。結構可包含構造函數、常量、欄位、方法、屬性、索引器、運算符。
結構是值類型,在堆棧(stack)上分配地址
結構和類都可以繼承介面。
結構不能被集成,類可以。
結構沒有析構函數,類有。
struct s
{
}
參考C#編程實戰寶典。清華大學出版社,付強 丁寧 等編著。第三章。