惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
U
Unit 42
H
Hackread – Cybersecurity News, Data Breaches, AI and More
云风的 BLOG
云风的 BLOG
IT之家
IT之家
MyScale Blog
MyScale Blog
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
InfoQ
博客园 - 司徒正美

博客园 - tiny羊

自制一个可以为XNA所用的GIF 转 PNG 的小工具 展示PNG动画精灵 XNA 4.0中实现简单的快捷键模板 C#关键字 之 访问与上下文 C#关键字 之 转换 C#关键字 之 运算符 C#关键字 之 参数 - tiny羊 C#关键字 之 块 C#关键字 之 修饰符 Sql小题几道 泛型函数 Javascript简明教程6 定义时执行与单例模式 编程语言发展趋势图 Javascript简明教程系列 Javascript简明教程五 DOM Javascript简明教程四 作用域 Javascript简明教程三 函数 Javascript简明教程二 变量 Javascript简明教程一 使用Javascript
泛型类及系统中常用的泛型类
tiny羊 · 2008-09-27 · via 博客园 - tiny羊

上回说了泛型函数的定义及使用方法,这回说说泛型类,所谓泛型类就是把类带有泛型参数

class A<T>{
}

泛型类中的T多用于定义类中的属性或函数的返回值

一个类可以存2个值。我只要这么写:

class A<T>{
public T First{get;set;}
public T Second{get;set;}
}

用的时候,下面两个都是合法的。

A<string> a=new A<string>();
a.First="11111asdasddfs";
a.Second="vvvvv";

A<int> a=new A<int>();
a.First=110;
a.Second=119;

系统泛型

系统的泛型类都是存在于System.Collections.Generic命名空间中,所以使用前要前using它(一般系统都默认using了)。

列表类

List<int>:特点可以用Add将新元素加入,其实可以看做是个数组。

List<int> l=new List<int>();
l.Add(1);
l.Add(2);
WL(l[0]);//输出1
WL(l[1]);//转出2

字典

Dictionary<T1,T2>:有值有键,按值取键

Dictionary<string,int> d=new Dictionary<string,int>();
d.Add("yang",5411);
d.Add("guo",111);
WL(d["yang"]);//5411
WL(d["guo"]);//111

这里出现了两个泛型定义,其实这样写是可以的,比如我们写个函数定义,返回他们的字符串相连后的字符串。

string c<T1,T2>(T1 x,T2 y){
return x.ToString()+x.ToString();
}

虽然有些免强,但我想大家已经明白其意图了。