C# 类型转换

类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:

  • 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
  • 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

下面的范例显示了一个显式的类型转换:

namespace TypeConversionApplication
{
    class ExplicitConversion
    {
        static void Main(string[] args)
        {
            double d = 5673.74;
            int i;

            // 强制转换 double 为 int
            i = (int)d;
            Console.WriteLine(i);
            Console.ReadKey();
            
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

5673

 

1. C# 类型转换方法

C# 提供了下列内置的类型转换方法:

序号方法 & 描述
1ToBoolean如果可能的话,把类型转换为布尔型。
2ToByte把类型转换为字节类型。
3ToChar如果可能的话,把类型转换为单个 Unicode 字符类型。
4ToDateTime把类型(整数或字符串类型)转换为 日期-时间 结构。
5ToDecimal把浮点型或整数类型转换为十进制类型。
6ToDouble把类型转换为双精度浮点型。
7ToInt16把类型转换为 16 位整数类型。
8ToInt32把类型转换为 32 位整数类型。
9ToInt64把类型转换为 64 位整数类型。
10ToSbyte把类型转换为有符号字节类型。
11ToSingle把类型转换为小浮点数类型。
12ToString把类型转换为字符串类型。
13ToType把类型转换为指定类型。
14ToUInt16把类型转换为 16 位无符号整数类型。
15ToUInt32把类型转换为 32 位无符号整数类型。
16ToUInt64把类型转换为 64 位无符号整数类型。

下面的范例把不同值的类型转换为字符串类型:

namespace TypeConversionApplication
{
    class StringConversion
    {
        static void Main(string[] args)
        {
            int i = 75;
            float f = 53.005f;
            double d = 2345.7652;
            bool b = true;

            Console.WriteLine(i.ToString());
            Console.WriteLine(f.ToString());
            Console.WriteLine(d.ToString());
            Console.WriteLine(b.ToString());
            Console.ReadKey();
            
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

75
53.005
2345.7652
True

一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。