国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#引用類型轉換的幾種方式

2019-11-17 02:53:30
字體:
來源:轉載
供稿:網友

C#引用類型轉換的幾種方式

本篇體驗引用類型轉換:子類轉換成父類,父類轉換成子類,以及不是子父級關系類之間的轉換。

□ 隱式轉換:子類轉換成父類

    public class Animal
    {
        public int _age;
        public Animal(int age)
        {
            this._age = age;
        }
    }
    public class Dog : Animal
    {
        public float _weight;
        public Dog(float weight, int age) : base(age)
        {
            _weight = weight;
        }
    }

客戶端,子類轉換成父類。

        static void Main(string[] args)
        {
            Dog dog = new Dog(2.5f,12);
            Animal animal = dog;
            Console.WriteLine(animal._age);
        }    

結果:12

可見,子類轉換成了父類是隱式轉換。這種轉換在棧上完成,棧上先有代表子類的變量dog,然后有代表父類的變量animal,最后把dog保存的堆地址賦值給了anmial。

□ 強轉:父類轉換成子類

如果客戶端父類轉換成子類。

        static void Main(string[] args)
        {
            Animal animal = new Animal(12);
            Dog dog = (Dog)animal;
            Dog dog = animal as Dog;
            if (dog != null)
            {
                Console.WriteLine(dog._age);
            }
            else
            {
                Console.WriteLine("轉換失敗");
            }
        }

結果:拋出異常,Animal無法轉換成Dog

可見,使用以上方式把父類強轉成子類,轉換失敗會拋出異常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长治市| 呼和浩特市| 城口县| 泾源县| 七台河市| 苏尼特左旗| 瑞安市| 买车| 靖州| 天祝| 新营市| 思茅市| 蓬溪县| 德保县| 淅川县| 沧州市| 寻甸| 娄底市| 兴隆县| 易门县| 大埔区| 富裕县| 安仁县| 甘德县| 同心县| 宽甸| 敦化市| 蓬溪县| 武城县| 嘉鱼县| 新宁县| 宣威市| 高淳县| 西乡县| 莆田市| 始兴县| 项城市| 当阳市| 南召县| 盘锦市| 芷江|