C# 类型转换方式

2020-04-01  本文已影响0人  凌枫望星月
using System;
namespace TypeTransform
{
    class NewType
    {   
    }
    class SonType:NewType
    {   
    }
    class HelloWorld
    {
        static void Main(string[] args)
        {
            NewType obj1 = new SonType();
            SonType obj2 = obj1 as SonType;
            Console.WriteLine(obj2.GetType());
            Console.ReadKey();
        }
    }
}

需要注意的是,as不能用于不同类型之间转换。
也不能用于值类型数据。

        static void Main(string[] args)
        {
            int value1 = default(int);
            object obj3 = 11;
            if(obj3 is int) 
            {
                value1 = (int) obj3;
            }
            Console.WriteLine(value1);
            Console.ReadKey();
        }
using System;
namespace TypeTransform
{
    class NewType
    {   
        public NewType(SonType f){p = f;}
        public SonType p{get;}
        public static implicit operator NewType(SonType f)
        {
            Console.WriteLine("SonType转换为NewType");
            return new NewType(f);
        }
        public static explicit operator SonType(NewType f)
        {
            Console.WriteLine("NewType转换为SonType");
            return new SonType();
        }
    }
    class SonType
    {   
        
    }
    class HelloWorld
    {
        static void Main(string[] args)
        {
            SonType a = new SonType();
            NewType b = new NewType(a);
            NewType c = a;
            SonType d = (SonType)b;
            
            Console.WriteLine(c.GetType()+ " "+ d.GetType());
            Console.ReadKey();
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读