程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 2.0泛型編程基礎(1)

C# 2.0泛型編程基礎(1)

編輯:關於C語言

最近頻繁的接觸到泛型方面的問題,所以也不得不來學習一下了,開始主要是在MSDN的WebCast上去下載教學錄象看的(李建忠老師的),本篇文章先介紹一下泛型入門方面的知識,希望能讓剛開始學習泛型的朋友能夠更快的入門,言歸正傳,首先我們來看一下泛型的基本概念。

最顯著的一點就是它參數化了類型,把類型作為參數抽象出來,從而使我們在實際的運用當中能夠更好的實現代碼的重復利用,同時它提供了更強的類型安全,更高的效率,不過在約束方面,它只支持顯示的約束,這樣在靈活性方面就顯得不是那麼好了。我覺得它之所以能夠提供更高的效率是因為泛型在實例化的時候采用了"on-demand"的模式,即按需實例化,發生在JIT(Just In Time)編譯時。

下面來看如何定義一個泛型類,很簡單,你只需要意識到一點,在這裡,類型已經被參數化了:

using System;
using System.Collections.Generic;
using System.Text;
namespace GenericTest
{
 class Program
 {
  static void Main(string[] args)
  {
   //使用string,int來實例化Test<T,S>類
   Test<string, int> t = new Test<string, int>("SHY520",22);
   //調用泛型類中的方法
   t.SetValue();
  }
 }
 /**//// <summary>
 /// 定義一個泛型類,該類有兩個類型參數,分別是T,S
 /// http://pw.cnblogs.com
 /// </summary>
 /// <typeparam name="T">類型參數</typeparam>
 /// <typeparam name="S">類型參數</typeparam>
 public class Test<T,S>
 {
  //泛型類的類型參數可用於類成員
  private T name;
  private S age;
  public Test(T Name,S Age)
  {
   this.name = Name;
   this.age = Age;
  }
  public void SetValue()
  {
   Console.WriteLine(name.ToString());
   Console.WriteLine(age.ToString());
  }
 }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved