亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#引用類型轉換的常見方式總結

2020-01-24 02:24:44
字體:
來源:轉載
供稿:網友

本文以實例形式簡單講述了引用類型轉換的幾種常見方式,如:子類轉換成父類,父類轉換成子類,以及不是子父級關系類之間的轉換。現分述如下,供大家參考:

一、隱式轉換:子類轉換成父類

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

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

三、使用as強轉:父類轉換成子類

如果客戶端使用as把父類轉換成子類。

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

結果:轉換失敗

可見,使用as把父類強轉成子類,轉換失敗不會拋出異常。 

四、使用is先判斷再強轉:父類轉換成子類

可以在強轉之前,先使用is判斷父類是否能轉換成子類,再根據子類實例是否為null判斷是否轉換成功。

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

五、使用操作符實現強轉

可以在一個類中設計一個靜態的、隱式的、操作符方法,把本類實例轉換成另外一個目標轉換對象實例。

public class Benz{    public int Mile { get; set; }    public Benz(int mile)    {      Mile = mile;    }    public static implicit operator Car(Benz benz)    {      return new Car(){Mile = benz.Mile};    }}public class Car{public int Mile { get; set; }}

客戶端

static void Main(string[] args){  Benz benz = new Benz(1000);  Car car = benz;  Console.WriteLine(car.Mile);  Console.ReadKey();}

結果:1000      

○ 使用操作符,把原本毫無關系的2個類建立關系,可實現轉換
○ 當執行Car car = benz的時候,就會執行Benz類的操作符方法operator Car
○ 操作符方法必須滿足幾個條件:靜態的、implicit,名稱和需要轉換的類名保持一致,返回需要轉換的類實例
○ 當執行Car car = benz的時候,在堆上創建一個Car實例,然后賦值給棧上的變量car

總結:

子類轉換成父類是隱式轉換,其本質是棧上的一個變量值賦值給了棧上另外一個變量
父類轉換成子類,如果直接使用"(子類)父類實例"的方式,很容易拋出異常
父類轉換成子類,如果使用as,可以避免拋出異常
父類轉換成之類,也可以先使用is判斷,然后再進行轉換
2個不是子父級關系的類,可以在1個類中設計一個操作符方法,把該類實例轉換成目標對象實例

相信本文所述對大家C#程序設計的學習有一定的借鑒價值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品成人aaaaa网站| 亚洲第一级黄色片| 国产精品免费一区| 欧美激情xxxx性bbbb| 国产精品va在线| 国产经典一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 日韩美女免费线视频| 日韩成人性视频| 久久久精品视频成人| 中文字幕日韩欧美精品在线观看| 国产精品自产拍在线观看| 亚洲福利视频二区| 亚洲精品中文字| 91九色国产在线| 欧洲成人免费aa| 亚洲va国产va天堂va久久| 国产精品一区二区电影| 欧美国产日韩二区| 插插插亚洲综合网| 国产精品丝袜白浆摸在线| 人人澡人人澡人人看欧美| 日韩精品在线观看网站| 高跟丝袜欧美一区| 日韩电影中文字幕在线观看| 久久人人爽人人爽人人片av高清| 乱亲女秽乱长久久久| 国产精品啪视频| 亚洲a中文字幕| 中文字幕欧美专区| 欧美激情久久久久| 亚洲石原莉奈一区二区在线观看| 久久国产精品免费视频| www国产精品视频| 欧美理论电影网| 欧美综合一区第一页| 亚洲女人天堂av| 国产精品高清在线观看| 国产欧美一区二区三区四区| 欧美限制级电影在线观看| 一区二区三区在线播放欧美| 久久久999国产精品| 久久av红桃一区二区小说| 亚洲欧美日韩直播| 久久99精品视频一区97| 日韩中文娱乐网| 久久久视频在线| 亚洲欧洲一区二区三区久久| 国产精品高潮粉嫩av| 成人女保姆的销魂服务| 久久久久久一区二区三区| 91免费精品国偷自产在线| 亚洲精品久久久久| 色综久久综合桃花网| 日韩美女在线看| 情事1991在线| 全亚洲最色的网站在线观看| 亚洲精品久久在线| 中文字幕自拍vr一区二区三区| 91av视频在线观看| 在线播放亚洲激情| 国产精品一区二区3区| 国产精品视频永久免费播放| 中文字幕亚洲在线| 亚洲性夜色噜噜噜7777| 亚洲成成品网站| 在线观看国产精品日韩av| 国产一区二区激情| 色妞在线综合亚洲欧美| 久久精品中文字幕免费mv| www.日本久久久久com.| 清纯唯美亚洲激情| 久久99国产综合精品女同| 中文字幕免费精品一区| 日韩精品一区二区视频| 国产日韩亚洲欧美| 91啪国产在线| 欧美国产精品人人做人人爱| 好吊成人免视频| 欧美日韩一区免费| 日韩av在线网| 精品中文字幕视频| 成人免费视频在线观看超级碰| 日韩精品视频三区| 日韩男女性生活视频| 狠狠躁夜夜躁久久躁别揉| 日韩中文字幕在线播放| 九九九热精品免费视频观看网站| 亚洲自拍偷拍第一页| 97成人在线视频| 精品久久久久久久中文字幕| 久久久久久久久久国产精品| 午夜精品久久久久久久99热浪潮| 国产日韩在线一区| 久久91超碰青草是什么| 国产精品www色诱视频| 欧美激情免费观看| 57pao成人国产永久免费| 亚洲综合成人婷婷小说| 国产成人精品视| 91丝袜美腿美女视频网站| 久久视频中文字幕| 国产亚洲欧美视频| 欧美在线视频在线播放完整版免费观看| 亚洲人成在线观| 91久久精品国产| 97视频在线观看免费高清完整版在线观看| 亚洲日本中文字幕免费在线不卡| 国产精品aaa| 国产日韩综合一区二区性色av| 欧美大胆在线视频| 日韩成人在线视频网站| 在线观看精品自拍私拍| 国产精品美女www| 欧美洲成人男女午夜视频| 精品高清美女精品国产区| 国产精品高潮呻吟久久av黑人| 国产成人精品一区二区在线| 国产精品久久久久久av福利软件| 国产91久久婷婷一区二区| 精品国内自产拍在线观看| 欧美高跟鞋交xxxxhd| 国外成人在线直播| 欧美日韩在线免费观看| 91久久精品国产91久久| 亚洲美女在线观看| 久久精品国产精品亚洲| 国产原创欧美精品| 精品五月天久久| 精品动漫一区二区三区| 高清在线视频日韩欧美| 奇米四色中文综合久久| 欧美超级乱淫片喷水| 日韩欧美在线视频免费观看| 亚洲专区在线视频| 久久久久久久久久久成人| 国产美女被下药99| 91在线精品视频| 久久精品视频99| 最近2019中文字幕一页二页| 久久视频在线视频| 国产婷婷97碰碰久久人人蜜臀| 国产成人精品一区二区| 欧美高清视频在线观看| 亚洲理论在线a中文字幕| 亚洲欧美另类人妖| 日韩中文在线不卡| 亚洲va男人天堂| 国产精品白嫩初高中害羞小美女| 韩国三级电影久久久久久| 精品国产一区二区三区久久狼5月| 欧美激情一二三| 欧美日韩国产精品| 韩曰欧美视频免费观看| 青草青草久热精品视频在线网站| 日韩一级裸体免费视频| 国产精品日韩在线播放| 亚洲精品aⅴ中文字幕乱码| 欧美高清不卡在线| 日韩成人高清在线| 日韩av电影手机在线| 国产精品久久久久久av| 亚洲一区二区三区视频播放| 日韩电影在线观看免费|