Convert类用于将一个基本数据类型转换为另一个基本数据类型,返回与指定类型的值等效的类型;受支持的基类型是Boolean、Char、SByte、Byte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal、DateTime和String。可根据不同的需要使用Convert类的公共方法实现不同数据类型的转换。所执行的实际转换操作分为以下3类:
(1)从某类型到它本身的转换只返回该类型,不实际执行任何转换。
(2)无法产生有意义的结果的转换引发InvalidCastException,不实际执行任何转换。下列转换会引发异常:从Char转换为Boolean、Single、Double、Decimal或DateTime,以及从这些类型转换为Char,还有从DateTime转换为除String之外的任何类型,以及从任何类型(String除外)转换为DateTime。
(3)任何基类型(上面描述的基类型除外)都可以与任何其他基类型进行相互转换。
Convert类常用公共方法及说明如表5.3所示。
表5.3 Convert类常用公共方法及说明
方 法 名 称
|
说 明
|
FromBase64CharArray
|
将Unicode字符数组的子集(将二进制数据编码为base 64数字)转换成等效的8位无符号整数数组。参数指定输入数组的子集以及要转换的元素数
|
FromBase64String
|
将指定的String(将二进制数据编码为base 64数字)转换成等效的8位无符号整数数组
|
GetHashCode
|
用作特定类型的哈希函数。GetHashCode适合在哈希算法和数据结构(如哈希表)中使用
|
ToBase64CharArray
|
将8位无符号整数数组的子集转换为用Base 64数字编码的Unicode字符数组的等价子集
|
ToBase64String
|
将8位无符号整数数组的值转换为它的等效String表示形式(使用base 64数字编码)
|
ToBoolean
|
将指定的值转换为等效的布尔值
|
ToByte
|
将指定的值转换为8位无符号整数
|
ToChar
|
将指定的值转换为Unicode字符
|
ToDateTime
|
将指定的值转换为DateTime
|
ToDecimal
|
将指定值转换为Decimal数字
|
ToDouble
|
将指定的值转换为双精度浮点数字
|
ToInt16
|
将指定的值转换为16位有符号整数
|
ToInt32
|
将指定的值转换为32位有符号整数
|
ToInt64
|
将指定的值转换为64位有符号整数
|
ToSByte
|
将指定的值转换为8位有符号整数
|
ToSingle
|
将指定的值转换为单精度浮点数字
|
ToString
|
将指定值转换为其等效的String表示形式
|
ToUInt16
|
将指定的值转换为16位无符号整数
|
ToUInt32
|
将指定的值转换为32位无符号整数
|
ToUInt64
|
将指定的值转换为64位无符号整数
|
主要代码如下:
private void button1_Click(object sender, EventArgs e)
{
string str = "转换前的数据类型:/n";
bool xBool = false;
float xSingle = 4.0f;
double xDouble = 5.0;
decimal xDecimal = 6.0m;
string xString = "7";
char xChar = '8'; // '8' = hexadecimal 38 = decimal 56
str += "bool类型:" + "值false /n";
str += "float类型:" + "值4.0f /n";
str += "double类型:" + "值5.0 /n";
str += "decimal类型:" + "值6.0m /n";
str += "string 类型:" + "值7 /n";
str += "char类型:" + "值8 /n";
string str1 = "转换后的数据类型:/n";
str1 += "bool类型转换成ToInt64类型:" + Convert.ToInt64(xBool).ToString() + "/n";
str1 += "float类型转换成ToInt64类型:" + Convert.ToInt64(xSingle).ToString() + "/n";
str1 += "double类型转换成ToInt64类型:" + Convert.ToInt64(xDouble).ToString() + "/n";
str1 += "decimal类型转换成ToInt64类型:" + Convert.ToInt64(xDecimal).ToString() + "/n";
str1 += "string 类型转换成ToInt64类型:" + Convert.ToInt64(xString).ToString() + "/n";
str1 += " char 类型转换成ToInt64类型:" + Convert.ToInt64(xChar).ToString() + "/n";
MessageBox.Show(str+str1,"数据类型转换",MessageBoxButtons.OK,MessageBoxIcon.Information);
}