C# 类型转换

类型转换 就是把数据从一种类型转换成另一种类型。

在 C# 中,类型转换有两种形式:

  • 隐式类型转换 - 隐式转换:C# 默认的以安全方式进行的转换。 本质是从小存储容量数据类型自动转换为大存储容量数据类型,从派生类转换为基类。

  • 显式类型转换 - 显式转换:通过用户使用预定义的函数显式完成的,显式转换需要强制转换运算符。 转换类型的范围大小和从属关系和隐式转换相反。显式转换可能会导致数据出错,或者转换失败,甚至无法编译成功。

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

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

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

        }
    }
}

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

4567

C# 类型转换方法

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

方法 描述
ToBoolean() 尽可能把类型转换为布尔型
ToByte() 把类型转换为字节类型
ToChar() 尽可能把类型转换为单个 Unicode 字符类型
ToDateTime() 把类型(整数或字符串类型)转换为 日期-时间 结构
ToDecimal() 把浮点型或整数类型转换为十进制类型
ToDouble() 把类型转换为双精度浮点型
ToInt16() 把类型转换为 16 位整数类型
ToInt32() 把类型转换为 32 位整数类型
ToInt64() 把类型转换为 64 位整数类型
ToSbyte() 把类型转换为有符号字节类型
ToSingle() 把类型转换为小浮点数类型
ToString() 把类型转换为字符串类型
ToType() 把类型转换为指定类型
ToUInt16() 把类型转换为 16 位无符号整数类型
ToUInt32() 把类型转换为 32 位无符号整数类型
ToUInt64() 把类型转换为 64 位无符号整数类型

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

using System;
namespace TypeConversionApplication
{
    class StringConversion
    {
        static void Main(string[] args)
        {
            int i = 78;
            float f = 48.005f;
            double d = 2345.6789;
            bool b = true;

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

        }
    }
}

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

78
48.005
2345.6789
True

Convert 函数

Convert的成员函数 ToIntX类函数能够把数字字符串转换成数字

string intstr = 456.ToString();
int data = Convert.ToInt16(intstr);
Console.WriteLine(data);

int.Parse 函数

int.Parse 函数能够将包含数字的字符串转换为int类型,如果转换不成功则会抛出异常

string intstr = 456.ToString();
int data = int.Parse(intstr);
Console.WriteLine(data);

int.TryParse(string s,out int i) 函数

int.TryParse函数能够将包含数字的字符串转换为int类型,该方式比 int.Parse(string s) 的不同之处就是:它不会抛出异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。

class test
{
    static void Main(string[] args)
    {
        string s1="hello 简单编程";
        string s2="4567";
        int a,b;
        bool bo1=int.TryParse(s1,out a);
        Console.WriteLine(s1+" "+bo1+" "+a);
        bool bo2=int.TryParse(s2,out b);
        Console.WriteLine(s2+" "+bo2+" "+b);
    }
}

结果输出:

hello 简单编程 False 0
4568 True 4567
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.