打印本文 打印本文 关闭窗口 关闭窗口
Csharp+Asp.net系列教程(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3184  更新时间:2009/4/23 10:46:28  文章录入:mintao  责任编辑:mintao
{
                        static void Main()
                        {
                            Color c;//声明Color的变量c;
                            c=(Color)4;//对数字3进行显示枚举转换
                            Console.WriteLine("c的值是{0}",c);
                        }
                    }
                    结果:c的值是4
    Convert 类
                        将一个基本数据类型转换为另一个基本数据类型。
                        该类返回值与指定类型的值等效的类型。受支持的基类型是 Boolean、Char、SByte、Byte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal、DateTime 和 String。

                存在将每个基类型转换为每个其他基类型的转换方法。不过,所执行的实际转换操作分为三类:

                从某类型到它本身的转换只返回该类型。不实际执行任何转换。
                无法产生有意义的结果的转换引发 InvalidCastException。不实际执行任何转换。下列转换会引发异常:从 Char 转换为 Boolean、Single、Double、Decimal 或 DateTime,以及从这些类型转换为 Char。下列转换会引发异常:从 DateTime 转换为除 String 之外的任何类型,以及从任何类型(String 除外)转换为 DateTime。
                任何基类型(上面描述的基类型除外)都可以与任何其他基类型进行相互转换。
                如果数字类型转换导致精度丢失(即某些最低有效位丢失),不引发异常。但是,如果结果超出了特定转换方法的返回值类型所能表示的范围,则将引发异常。

下面介绍一下和类型转换相关的装箱、取消装箱
            装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换。将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。

        请看以下值类型变量的声明:

        int i = 123;
        以下语句对变量 i 隐式应用装箱操作:

        object o = i;
        此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。该值是赋给变量 i 的值类型值的一个副本。下图说明了两个变量 i 和 o 之间的差异。

        装箱转换
        在堆栈上            在堆上
        i 123
        int i=123;
        o                    (将i装箱)
        object o=i;            int 123
        也可以(但绝不必要)如下例所示显式执行装箱:
        int i = 123;
        object o = (object) i;
        示例
        此例将整数变量 i 通过装箱转换为对象 o。这样,存储在变量 i 中的值就从 123 更改为 456。此例显示对象保留了内容的原始副本,即 123。
        // boxing.cs
        // Boxing an integer variable
        using System;
        class TestBoxing
        {
         public static void Main()
         {
         int i = 123;
         object

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口