用C#编写程序,设计一个类型转换的实例,例如,long z1=100; int z2=(int)z1; short z3=(short)z2; sbyte z4=(sbyte)z3; 并打印其值,理解数据转换的规则。
时间: 2024-12-24 20:42:37 浏览: 13
在C#中,不同类型的数据之间可以进行隐式或显式的转换。上述示例展示了从大范围类型到小范围类型的向下转型。当你将`long`类型的变量赋值给较小类型的变量时,会自动进行类型转换。这里有一个完整的例子:
```csharp
using System;
class Program
{
static void Main()
{
long z1 = 100; // 定义一个long类型的变量
// 显式类型转换 (int)
int z2 = (int)z1; // 将long转换为int,如果数值在int范围内则不会出错
Console.WriteLine("Int value of z1: " + z2);
// 再次向下转型 (short)
short z3 = (short)z2; // 同样地,将int转换为short,但注意可能会导致数据丢失或溢出
Console.WriteLine("Short value of z2: " + z3);
// 最后向下转型 (sbyte)
sbyte z4 = (sbyte)z3; // 此处会尝试将short转换为sbyte,可能会发生溢出错误
Console.WriteLine("SByte value of z3: " + z4);
Console.ReadLine(); // 等待用户按下回车键
}
}
```
需要注意的是,从大范围类型向小范围类型转换时,如果数值超出了目标类型的最大值,将会导致溢出异常。在实际应用中,应该始终检查是否安全进行此类转换,尤其是在处理用户输入或不确定数据的情况下。
阅读全文