一个简单的例子学习c#泛型
2011-04-22 15:28
441 查看
转载
using System;
//我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。
namespace Generic
{
class Program
{
static void Main(string[] args)
{
//一个普通的类,只能传入int类型的参数。
print p = new print(5);
//使用了泛型,只需要在 < > 中定义参数类型就可以了。
print1<int> p1 = new print1<int>(5);
print1<string> p2 = new print1<string>("p2");
//泛型参数的约束,第一个必须是值类型(struct),第二个是引用类型(class)。
print2<int, string> p3 = new print2<int, string>(5, "p3");
//泛型方法,可以对方法传入不同类型的参数。
print3 p4 = new print3();
p4.print("aaa", "bbb", "ccc");
p4.print(111,222,333);
Console.ReadLine();
//输出结果
//5
//5
//p2
//5 p3
//aaa
//bbb
//ccc
//111
//222
//333
}
}
class print
{
public print(int i)
{
Console.WriteLine(i);
}
}
class print1<T>
{
public print1(T t)
{
Console.WriteLine(t);
}
}
//泛型约束,使用了where关键字。
class print2<T, V> where T:struct where V:class
{
public print2(T t,V v)
{
Console.WriteLine(t + " " + v);
}
}
class print3
{
public print3(){}
public void print<T>(params T[] p)
{
foreach (T t in p)
{
Console.WriteLine(t);
}
}
}
}
相关文章推荐
- 一个简单的例子学习c#泛型
- 学习Hibernate——简单的一个例子
- Qt学习 之 Socket通信(一个简单的例子)
- JBPM学习(一):实现一个简单的工作流例子全过程
- 增强学习系列之(二):实现一个简单的增强学习的例子
- ThinkPHP 学习(2)---一个简单的起步的例子
- [Struts]学习日记1 - 一个简单的例子
- Java学习笔记 11/15:一个简单的JAVA例子
- NSIS的学习笔记2---一个简单的例子,主要说明NSIS的结构
- 【性能跟踪】btrace学习二--btrace一个简单例子
- JBPM学习(一):实现一个简单的工作流例子全过程
- 一个自写的共享内存简单的例子,学习原理之用
- 菜鸟学习Hibernate——简单的一个例子
- JBPM学习(一):实现一个简单的工作流例子全过程
- 菜鸟学习Hibernate——简单的一个例子
- ServerSocket的一个简单例子,学习backlog参数的设置,即可以接受客户端的数量
- c#学习笔记之九 事件(event)的使用,一个简单的例子揭示其设计理念
- ios学习笔记block回调的应用(一个简单的例子)
- SVM实现多分类的程序基础工作(二)——通过一个简单libsvm例子迈入libsvm学习的大门
- LeJOS学习(9):一个整合传感器与马达的简单例子