预定义类型同时含了预定义的转化行为。比如,int和long之间存在预定义的转化。C#区分这两种类型的转化:隐式转化和显示转化。隐式转化指的是安全的、不需要仔细地指出来的转化。比如int到long的转化就是隐式转化。这种转化总是成功执行,不会造成信息的丢失(译注:此处指的是精度损失)。下面的例子:
 1 using System;
 2 class
 Test
 3 
{
 4  static void
 Main()
 5 
 {
 6  int intValue = 123
;
 7  long longValue =
 intValue;
 8  Console.WriteLine("{0}, {1}"
, intValue, longValue);
 9 
 }
10 }
隐式地将一个int类型的变量转化成long类型的变量(译注:intValue本身的类型始终是int,不会变)。
相反的,显示转化需要一个转化表达式,如:
 1 using System;
 2 class
 Test
 3 
{
 4 static void
 Main()
 5 
 {
 6 long longValue =
 Int64.MaxValue;
 7 int intValue = (int
) longValue;
 8 Console.WriteLine("(int) {0} = {1}"
, longValue, intValue);
 9 
}
10 }
例子中将long显示转化成int.输出是
(int) 9223372036854775807 = -1
因为溢出了。转化表达式允许执行显示和隐式的转化。

posted on 2009-03-18 17:17  apple123  阅读(212)  评论(0编辑  收藏  举报