上QQ阅读APP看书,第一时间看更新
2.4 不同类型的强制转换
编程过程中,有时候需要把一个类型的数值赋值给另一个类型的变量,如果源类型和目标类型是同种类型的,则直接赋值即可,这称作隐式转换。如果源类型和目标类型是不同类型的,则需要进行显式转换,否则会提示出错。
下面的4行代码可以正常运行,因为int类型的数据可以直接赋值给long类型;float类型的数据也可以直接赋值给double类型。
1 int I = 32; 2 long L = I; 3 float FLT = 3.14F; 4 double D = FLT;
■2.4.1 ToString
要把一个数据显示在MessageBox对话框中,或者显示在窗体的文本框中,都需要事先把变量或计算结果转换为string类型才行。以下代码,把整型变量I显示在窗体上的富文本框中。
1 int I = 32; 2 this.richTextBox1.Text =I.ToString();
■2.4.2 Parse
与ToString功能相反,Parse可以把字符串转换为其他数据类型。
1 string temp ="1"; 2 int i = int.Parse(temp); 3 float f = float.Parse(temp); 4 char c = char.Parse(temp); 5 6 string s = "false"; 7 bool b = bool.Parse(s); 8 9 string d = "2016-8-8"; 10 DateTime dt = DateTime.Parse(d);
上述代码分别把字符串类型的数据转换为整型、浮点型、字符型、布尔型以及日期时间型。
■2.4.3 Convert
C#还可以使用System.Convert来转换数据类型。例如下面这句代码,把字符串转换为double类型。
double p = System.Convert.ToDouble(“3.14”);
System.Convert常用数据类型转换函数如表2.6所示。
表2.6 System.Convert常用数据类型转换函数
除了上述的转换方法外,还可以在原数据前面放一个括号,括号内是目标数据类型的名称。如下代码:
1 int m = 3; 2 double d =(double)m;
上述代码把整型数据m赋值给双精度变量d。
以下代码演示了最常用的数据类型的转换,读者自行调试体会。
1 public void不同类型的强制转换() 2 { 3 int i = 30; 4 string s = i.ToString(); //整型转字符串 5 s = "30.65"; 6 float f = float.Parse(s); //字符串转浮点型 7 double d = (double)f; //浮点型转双精度型 8 int j = (int)d; //双精度型转整型 9 result = i + s + f + d + j + ""; 10 }
具有同样功能的VBA代码如下:
1 Public Sub不同类型的强制转换() 2 Dim i As Integer, s As String, f As Single, d As Double, j As Integer 3 i = 30 4 s = CStr(i) '整型转字符串 5 s = "30.65" 6 f = CSng(s) '字符串转浮点型 7 d = CDbl(f) '浮点型转双精度型 8 j = CInt(d) '双精度型转整型 9 result = i & s & f & d & j & "" 10 End Sub