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

C# 2.0中泛型編程初級入門教程(3)

編輯:關於C語言

泛型方法

泛型不僅能作用在類上,也可單獨用在 類的方法上,他可根據方法參數的類型自動適應各種參數,這樣的方法叫泛型方 法。看下面的類:

public class Stack2
{
 public void Push<T>(Stack<T> s, params T[] p)
 {
   foreach (T t in p)
  {
   s.Push(t);
  }
  }
}

原來的類Stack一次只能Push一個數據,這個類Stack2 擴展了Stack的功能(當然也可以直接寫在Stack中),他可以一次把多個數據壓 入Stack中。其中Push是一個泛型方法,這個方法的調用示例如下:

Stack<int> x = new Stack<int>(100);
Stack2 x2 = new Stack2();
x2.Push(x, 1, 2, 3, 4, 6);
string s = "";
for (int i = 0; i < 5; i++)
{
 s += x.Pop().ToString();
} //至此,s的值為 64321

泛型中的靜態成員變量

在C#1.x中,我們知道類的 靜態成員變量在不同的類實例間是共享的,並且他是通過類名訪問的。C#2.0中 由於引進了泛型,導致靜態成員變量的機制出現了一些變化:靜態成員變量在相 同封閉類間共享,不同的封閉類間不共享。

這也非常容易理解,因為不 同的封閉類雖然有相同的類名稱,但由於分別傳入了不同的數據類型,他們是完 全不同的類,比如:

Stack<int> a = new Stack<int>();
Stack<int> b = new Stack<int> ();
Stack<long> c = new Stack<long>();

類實例a和b是同一類型,他們之間共享靜態成員變量,但類實例c卻是和a、b完 全不同的類型,所以不能和a、b共享靜態成員變量。

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