C# 範型入門 1
//1.合法
class C<U,V> {}
//2.合法 -基類已經例項化
class D:C<string,int> {}
//3.合法 - 父類與子類同樣是範型,
class E<U,Y>:C<U,Y>
{}
//4.合法
class F<U,Y>:C:<string,int> {}
//5.非法
class G:C<U,Y> {}
//父類的型別引數要麼已經例項化,要麼來源於子類
範型型別的成員
class C<V>
{
pulbic V f1;
public D<V> f2; //成為其他範型型別的引數
public C(V x)
{ this.f1=x;}
}
{
pulbic V f1;
public D<V> f2; //成為其他範型型別的引數
public C(V x)
{ this.f1=x;}
}
class Program
{
static void Main()
{
int[] arr = { 0, 1, 2, 3, 4 };
List<string > list = new List<string >();
for (int x = 5; x < 10; x++)
{
list.Add(x.ToString ());
}
ProcessItems<int>(arr);
ProcessItems<string >(list);
Console.ReadLine();
}
static void ProcessItems<T>(IList<T> coll)
{
foreach (T item in coll)
{
System.Console.Write(item.ToString() + " ");
}
System.Console.WriteLine();
}
}
{
static void Main()
{
int[] arr = { 0, 1, 2, 3, 4 };
List<string > list = new List<string >();
for (int x = 5; x < 10; x++)
{
list.Add(x.ToString ());
}
ProcessItems<int>(arr);
ProcessItems<string >(list);
Console.ReadLine();
}
static void ProcessItems<T>(IList<T> coll)
{
foreach (T item in coll)
{
System.Console.Write(item.ToString() + " ");
}
System.Console.WriteLine();
}
}
上面這段程式碼,雖然沒有實際意義,但是對理解泛型的基本應用是個好例子。
相關文章
- C#快速入門教程(21)—— 泛型C#泛型
- C#快速入門教程(22)—— 常用集合型別C#型別
- c#入門-型別轉換和運算C#型別
- OpenAPI規範入門API
- C#快速入門教程(7)——資料型別概述C#資料型別
- C#快速入門教程(11)—— 字元和字串型別C#字元字串型別
- C#語言入門詳解(劉鐵錳)---泛型C#泛型
- C# WCF入門C#
- C#快速入門C#
- C#規範整理·泛型委託事件C#泛型事件
- C#快速入門教程(1)——物件導向程式設計C#物件程式設計
- C#中的泛型-1C#泛型
- C#入門程式碼C#
- Dart語法超光速入門(1):內建型別Dart型別
- JAVA泛型入門Java泛型
- flask入門1Flask
- 1、MyCat入門
- docker入門1Docker
- 1、dwr入門
- redux——入門1Redux
- 機器學習1—入門機器學習
- JQuery入門(1)jQuery
- C#快速入門教程(9)——浮點數、Decimal型別和數值型別轉換C#Decimal型別
- c#入門-while迴圈C#While
- C# 12 Blazor入門教程C#Blazor
- MongoDB for C#基礎入門MongoDBC#
- c# orm轉貼入門C#ORM
- 《C#入門與提高》 (轉)C#
- C#快速入門教程(10)——布林型別與布林運算C#型別
- Python 3 快速入門 1 —— 資料型別與變數Python資料型別變數
- Docker入門(1):概述Docker
- Kafka入門(1):概述Kafka
- (1)入門MasaFramework教程Framework
- 1、Spring入門Spring
- Julia快速入門(1)
- Python(1):入門Python
- 入門1~4:A系列
- 21、jdbc入門1JDBC