使用 Convert 類:
ToBoolean -> boolToByte -> byteToChar -> charToDateTime -> DateTimeToDecimal -> decimalToDouble -> doubleToInt16 -> shortToInt32 -> intToInt64 -> longToSByte -> sbyteToSingle -> floatToString -> stringToUInt16 -> ushortToUInt32 -> uintToUInt64 -> ulong
using System;class MyClass{ static void Main() { int num; string str; num = 99; str = Convert.ToString(num); Console.WriteLine(str); str = "123"; num = Convert.ToInt32(str); Console.WriteLine(num); Console.ReadKey(); }}
隱式轉換, 只要容得下就行:
using System;class MyClass{ static void Main() { byte n = byte.MaxValue; short n1 = n; int n2 = n; long n3 = n; Console.WriteLine("{0},{1},{2}", n1, n2, n3); //255,255,255 Console.ReadKey(); }}
顯示轉換, 可能會因溢出而遺失資料:
using System;class MyClass{ static void Main() { ulong n = ulong.MaxValue; byte n1 = (byte)n; ushort n2 = (ushort)n; uint n3 = (uint)n; Console.WriteLine("{0},{1},{2}", n1, n2, n3); //255,65535,4294967295 Console.ReadKey(); }}
溢出檢查:
using System;class MyClass{ static void Main() { int i; byte b; i = 255; b = (byte)i; /* i 在 byte 的範圍內, 不會溢出 */ b = unchecked((byte)i); /* 同上一行, 不做溢出檢查 */ Console.WriteLine(b); // 255 i++; b = (byte)i; /* i 超出 byte 的範圍內, 會溢出 */ b = unchecked((byte)i); /* 同上一行, 不做溢出檢查 */ Console.WriteLine(b); // 0 i = 255; b = checked((byte)i); /* 可以通過溢出檢測 */ Console.WriteLine(b); // 255 i++; b = checked((byte)i); /* 不能通過溢出檢測, 會報錯 */ Console.WriteLine(b); Console.ReadKey(); }}