C#范型例子
昨天也看到了范型这个被.Net 2.0支持的类型。
范型大概是这样的:比如说我们声明一个对象,但是这个对象的类型我们在设计的时候不清楚,要等到实际运行时才能决定他的类型。一般的做法是声明一个object类型的对象,可以存任何类型进去,需要取得时候,取出来,再用类型转换。这样做的坏处估计是性能低,任何类型都需要装箱和拆箱,还有就是可能存在的类型转换时出现错误。
而范型是在运行期才确定类型的,所以就可以根据需要来任意指定其类型。
比如:
class TimeSpanPropertiesDemo
{
static void Main()
{
//声明对象为TypeList型,TypeList中定义的范型类型为int型
TypeList MyList = new TypeList();
MyList.GetSetValue = 23;
int test = MyList.GetSetValue;
//声明对象为TypeList型,TypeList中定义的范型类型为string型
TypeList MyList2 = new TypeList();
MyList2.GetSetValue = "Hello";
string test2 = MyList2.GetSetValue;
//声明对象为TypeList型,TypeList中定义的范型类型为TypeList型
TypeList> MyList3 = new TypeList>();
}
}
class TypeList //范型类型
{
MyType m_value; //范型类型的变量
public MyType GetSetValue
{
get
{
return m_value;
}
set
{
m_value = value;
}
}
}
从这个例子大家可以看出,范型就是将类型作为变量,从而可以写出程序代码不需要任何修改,就能适应各种类型的Class。
.Net 2.0出来也很久了,但是一直也没时间看新东西。正好昨天看那篇如何创建数据访问层的文章,也就顺便把这些东西看一下。
不过昨天还是头一次看到强类型的DataSet是这么好用,整个数据访问层没有一句SQL语句。
有机会我会继续写一些程序方面的文章,不过大家期望不要太高,一般都是常见的问题的自己的想法。