zoukankan      html  css  js  c++  java
  • C#类型转换

    类型转换包括显示转换和隐式转换,在.NET中类型转换的基本规则如下:

    •任何类型都可以安全的转换为其基类类型,可以由隐式转换来完成;
    •任何类型转换为其派生类型时,必须进行显示转换,转换的规则是:(类型名)对象名;
    •使用GetType可以取得任何对象的精确类型;
    •基本类型可以使用Covert类实现类型转换;
    •除了string以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型;
    •值类型和引用类型的转换机制称为装箱(boxing)和拆箱(unboxing)。
    •is和as关键字

    基类型是Boolean、Char、SByte、Byte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal、DateTime 、String。

    using System;
    
    namespace codeTest
    {
        class Program
        {
    
            static void Main(string[] args)
            {
                //任何类型都可以安全的转换为其基类类型,可以由隐式转换来完成;
                int a = 1;
                object aa = a;
                //任何类型转换为其派生类型时,必须进行显示转换,转换的规则是:(类型名)对象名; 
                object b = 2;
                int bb = (int)b;
                //使用GetType可以取得任何对象的精确类型; 
                bb.GetType();
                //基本类型可以使用Convert类实现类型转换;
                int cc = Convert.ToInt32("44");
                double dd = Convert.ToDouble("44");         
                //除了string以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型; 
                decimal ee = decimal.Parse("77");
                //值类型和引用类型的转换机制称为装箱(boxing)和拆箱(unboxing)
                object f = 60;
                int ff = (int)f;
    
                // is 和 as  关键字
    
                //检查对象类型的兼容性,并返回结果,true或者false; 
                //不会抛出异常; 
                //如果对象为null,则返回值永远为false。 
                object _A = new B();
                if (_A is A)
                {
                    Console.WriteLine("is_B类型兼容A类型");
                    B _b = (B)_A;
                }
    
                //检查对象类型的兼容性,并返回结果,如果不兼容就返回null; 
                //不会抛出异常; 
                //如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。 
                if (_A as A !=null)
                {
                    Console.WriteLine("as_B类型兼容A类型");
                    B _bb = (B)_A;
                }
    
                Console.ReadLine();
            }
    
            class A
            {
            }
    
            class B : A
            {
            }
        }
    
    
    }
  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/4751252.html
Copyright © 2011-2022 走看看