Convert 類別

 

Convert 類別裡面全都是靜態方法,放著一堆數值轉換方法讓開發者呼叫使用。

以下列出代表性方法

public static object ChangeType(object value, Type conversionType);
public static byte[] FromBase64CharArray(char[] inArray, int offset, int length);
public static byte[] FromBase64String(string s);
public static TypeCode GetTypeCode(object value);
public static string ToBase64String(byte[] inArray, Base64FormattingOptions options);
public static bool ToBoolean(int value);
public static byte ToByte(int value);
public static char ToChar(int value);
public static DateTime ToDateTime(string value);
public static decimal ToDecimal(string value);
public static double ToDouble(string value);
public static short ToInt16(string value, int fromBase);
public static int ToInt32(string value, int fromBase);
public static long ToInt64(string value, int fromBase);
public static sbyte ToSByte(int value);
public static float ToSingle(int value);
public static string ToString(DateTime value);
public static ushort ToUInt16(string value, int fromBase);
public static uint ToUInt32(string value, int fromBase);
public static ulong ToUInt64(string value, int fromBase);

 

從代表性方法之中挑出幾個方法作範例並輔以說明。

一、ChangeType(object value, Type conversionType)

Convert.ChangeType(10, typeof(string))

將數值10轉成string型別。

 

二、FromBase64CharArray(char[] inArray, int offset, int length)

char[] b = { '1', '2', 'a', 'b' };
byte[] c = Convert.FromBase64CharArray(b, 0, b.Length);

將base64格式的字元陣列轉成byte陣列,

要特別注意的是,4個base64單位等於3byte,

所以FromBase64CharArray方法在轉換時,字元陣列最少要4個。

 

三、GetTypeCode(object value)

Convert.GetTypeCode("10");

內容為10的字串,經由GetTypeCode回傳得到TypeCode.String。

 

四、ToBase64String(byte[] inArray, Base64FormattingOptions options)

byte[] a = { 1 };
string b = Convert.ToBase64String(a, Base64FormattingOptions.InsertLineBreaks);

把byte陣列轉成Base64格式,雖然4個base64單位等於3byte,

但是轉成Base64格式的過程中,會把不足的位元數自動補足。

 

五、ToBoolean(int value)

Convert.ToBoolean(9);

不管正負,只要不為零的整數都為true。

 

六、ToByte(int value)

Convert.ToByte(10);

將0~255之間的數值轉成不帶正負號8bit的二進制整數。

 

七、ToChar(int value)

Convert.ToChar(97);

數值的97,表示ASCII code為97,將對應到'a'字元。

 

八、ToDateTime(string value)

Convert.ToDateTime("2016/11/20");

將特定的字串格式轉成時間型別。

 

九、ToDecimal(string value)

Convert.ToDecimal("100");

將字串轉成Decimal型別。

 

十、ToInt16(string value, int fromBase)

Convert.ToInt16("100", 2);

將字串"100"轉成二進制數值,結果為4。

 

十一、ToSByte(int value)

Convert.ToSByte(-128);

將-128~127之間的數值轉成帶正負號8bit的二進制整數。

 

十二、ToString(DateTime value)

Console.WriteLine(Convert.ToString(new DateTime(2016, 11, 20)));

將指定之 DateTime 的值轉換為它的相等字串表示。

 

關於轉換方法也常跟BitConverter 類別配合,用來對各型別數值去取得bytes陣列,

還有逆向操作,將bytes陣列轉成各種型別數值。

 

參考資料:

Convert 類別

Base64