C#类型转换:
隐式转换:不需要任何工作,也不需要编写代码。任何类型A,只要取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。
显示转换:明确要求编译器把数值从一种数据类型转换为另一种数据类型时,就是在执行显式转换。在这里需要注意的是溢出。
1、在显示转换里使用checked语句防止溢出:checked(expression)
2、在vs环境下,设置项目->属性->生成->高级->选中自动检测溢出。
3、使用Convert命令会自己检查是否溢出,与设置和checked无关:Convert.Tobyte()
namespace Ch05Ex01 { class Program { static void Main(string[] args) { short shortResult, shortVal = 4; int integerVal = 67; long longResult; float floatVal = 10.5F; double doubleResult, doubleVal = 99.999; string stringResult, stringVal = "17"; bool boolVal = true; Console.WriteLine("Variable Conversion Examples\n"); doubleResult = floatVal * shortVal; Console.WriteLine("Implicit,->double: {0} * {1} -> {2}", floatVal, shortVal, doubleResult); shortResult = (short)floatVal; Console.WriteLine("Explicit,-> short: {0} -> {1}", floatVal, shortResult); stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal); Console.WriteLine("Explicit,-> string: \"{0}\" + \"{1}\" ->{2}", boolVal, doubleVal, stringResult); longResult = integerVal + Convert.ToInt64(stringVal); Console.WriteLine("Mixed, -> long: {0} + {1} -> {2}", integerVal, stringVal, longResult); Console.ReadKey(); } } }