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陣列轉成各種型別數值。
參考資料: