什麼是泛型(C#)

來源:互聯網
上載者:User
所謂泛型是指將型別參數化以達到代碼複用提高軟體開發工作效率的一種資料類型。

一種類型預留位置,或稱之為型別參數。我們知道一個方法中,一個變數的值可以作為參數,但其實這個變數的類型本身也可以作為參數。泛型允許我們在調用的時候再指定這個型別參數是什麼。在.net中,泛型能夠給我們帶來的兩個明顯好處是——型別安全和減少裝箱、拆箱。 

  例如:通常一個方法或過程的簽名都是有明確的資料類型的。

  如 :

  public void ProcessData(int i){}

  public void ProcessData(string i){}

  public void ProcessData(decimal i){}

  public void ProcessData(double i){}

  等。

  這些方法的簽名中的:int ,string,decimal,double 都是明確的資料類型,程式員訪問這些方法的過程中需要提供提定類型的參數:

  ProcessData(123);

  ProcessData("abc");

  ProcessData("12.12")

  而如果我們將int ,string,decimal,double這些類型也當成一種參數傳給方法的時候方法的定義便是這樣:

  public void ProcessData<T>(T i){} //T是int ,string,decimal,double這些資料類型的指代

  使用者在調用的時候便成了這樣:

  ProcessData<string>("abc");

  ProcessData<int>(123);

  ProcessData<double>(12.23);

  這與通常的那些定義的最大區別是,方法的定義實現過程只有一個。但是它具有處理不同的資料類型資料的能力。

  C# 2.0中有如List<>等泛型對象都具有此特性。

  具有泛型機制的軟體開發平台及語言

  .Net 平台 2.0及以上版本

  JAVA 5及以上版本

  泛型的好處:

  泛型是c#2.0的一個新增加的特性,它為使用c#語言編寫物件導向程式增加了極大的效力和靈活性。它允許程式員將一個實際的資料類型的規約延遲至泛型的執行個體被建立時才確定。泛型為開發人員提供了一種高效能的編程方式,能夠提高代碼的重用性,並允許開發人員編寫非常優雅的解決方案。

 

資料層:

public List<libs.Model.Artitle> GetAllArt()
       {
           List<libs.Model.Artitle> list = new List<Artitle>();
         
           string sqlconn = System.Configuration.ConfigurationSettings.AppSettings["sqlconn"];
           SqlConnection conn = new SqlConnection(sqlconn);
           string sqlstr = "select titleid,Title,author,company,Uploaddate,isVidate,conimages,content from writings order by titleid asc";
           SqlCommand cmd = new SqlCommand (sqlstr,conn);
          
           try
           {
               conn.Open();
               SqlDataReader reader = cmd.ExecuteReader();
               while (reader.Read())
               {
                   libs.Model.Artitle artles = new Artitle();
                   artles.Titleid = int.Parse(reader["titleid"].ToString());
                   artles.Title = reader["title"].ToString();
                   artles.Uploaddate = DateTime.Parse(reader["Uploaddate"].ToString());
                   list.Add(artles);
      

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.