什么是.net的接口和抽象類(2)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:10個ASP.NET編程技巧
      1、盡量減少表單回送 每當點擊Web網頁上的Button、LinkButton或ImageButton控件時,表單就會被發送到服務器上。如果控件的AutoPostBack屬性被設置為true,如果CheckBox、CheckBoxList等控件的狀態被改變后,也會使表單會發送回服務器。 每次當表單被發送回服


        設計結構如圖所示:
      你必須知道的.NET之對接口和抽象類系統中心 
        1. 定義抽象類
      public abstract class Animal
      {
       protected string _name;
       //聲明抽象屬性
       public abstract string Name
       {
        get;
       }

      //聲明抽象方法

      public abstract void Show();

      //實現一般方法

      public void MakeVoice()
      {
       Console.WriteLine("All animals can make voice!");
      }
       }

       

      2. 定義接口
      public interface IAction
      {
       //定義公共方法標簽
       void Move();
      }

      3. 實現抽象類和接口
      public class Duck : Animal, IAction
      {
       public Duck(string name)
       {
        _name = name;
       }
      //重載抽象方法

       public override void Show()
       {
        Console.WriteLine(_name + " is showing for you.");
       }

       //重載抽象屬性

       public override string Name
       {
        get { return _name;}
       }

      //實現接口方法

      public void Move()
      {
       Console.WriteLine("Duck also can swim.");
      }
      }

      public class Dog : Animal, IAction
      {
       public Dog(string name)
       {
        _name = name;
       }
       public override void Show()
       {
        Console.WriteLine(_name + " is showing for you.");
       }

       public override string Name
       {
        get { return _name; }

       }

       public void Move()
       {
        Console.WriteLine(_name + " also can run.");
       }
      }

      4. 客戶端實現
      public class TestAnmial
      {
       public static void Main(string [] args)
       {
        Animal duck = new Duck("Duck");
        duck.MakeVoice();
        duck.Show();
        Animal dog = new Dog("Dog");
        dog.MakeVoice();
        dog.Show();
        IAction dogAction = new Dog("A big dog");
        dogAction.Move();
       }
      }

        dunai認為:抽象類是提取具體類的公因式,而接口是為了將一些不相關的類“雜湊”成一個共同的群體。至于他們在各個語言中的句法,語言細節并不是我關心的重點。 
        Artech認為:所代碼共用和可擴展性考慮,盡量使用Abstract Class。當然接口在其他方面的優勢,我認為也不可忽視。
        shenfx認為:當在差異較大的對象間尋求功能上的共性時,使用接口;當在共性較多的對象間尋求功能上的差異時,使用抽象基類。
        最后,MSDN的建議:
        如果預計要創建組件的多個版本,則創建抽象類。抽象類提供簡單易行的方法來控制組件版本。通過更新基類,所有繼承類都隨更改自動更新。另一方面,接口一旦創建就不能更改。如果需要接口的新版本,必須創建一個全新的接口。
        如果創建的功能將在大范圍的全異對象間使用,則使用接口。抽象類應主要用于關系密切的對象,而接口最適合為不相關的類提供通用功能。
        如果要設計小而簡練的功能塊,則使用接口。如果要設計大的功能單元,則使用抽象類。
        如果要在組件的所有實現間提供通用的已實現功能,則使用抽象類。抽象類允許部分實現類,而接口不包含任何成員的實現。

      分享:asp.net回發或回調參數無效解決方法
      首先,這個問題出現在asp.net2.0中,我是在做一個二級菜單出現了這個問題 , 該功能用javascript改變DrownDownList內容后再提交就出現這個錯誤, 總結 網上的解決 回發或回調參數無效 方法主要有: 一是在前臺aspx頁中設置 %@ Page Language=C# EnableEv

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2010-06-02
      相關.Net教程