1. 程式人生 > >C#裡式轉換法則和is,as的用法

C#裡式轉換法則和is,as的用法

裡式轉換法則:父類物件可以接收子類的實體,(和java中的多型是一樣的)

                            父類中的方法用virtual 修飾,則繼承父類的子類可以重寫該方法,重寫是加上override關鍵字,子類中沒有重寫父類的虛方法,那呼叫時還是指向的是父類的方法,如果子類中方法簽名和父類中的一樣,但是沒有override關鍵字,如程式碼

namespace{

public class Person

{

     public virtual void Hello(){  Console.writeline("父類方法") ;}

}

public class student : Person

{

   public void Hello(){  Console.writeline("子類方法"); }

}

class Program

{

//這裡的 p.Hello() 實際呼叫的是父類的Hello()方法,因為子類中重寫時沒有加上override關鍵字

  static void Main(string[] args){  Person  p = new student();   p.Hello()

   }

}

}

裡式轉換法則中的 is 和 as  ,兩個物件需要相互轉換,is 返回的是true和false,true則能夠轉換,as返回 null,或者物件,如果能夠轉換返回轉換的物件,否則返回null。

案列

public class Person{}//一個類   public class Student:Person{}//student類   public class Teacher:Person{}//teacher類

Person   person = new   Student(); 

bool   b =  person is Student  //  ==>true

bool b1 = person is Teacher // ==>false