求助:C#泛型

yhj8848 2012-03-27 05:05:58
这两天我在学习C#,当碰到泛型这个概念时,却有些迷茫,原来学VB.NET是也碰到过,那时觉得泛型没有什么用,就直接跳过去了,现在又碰到了,想下决心理解这个问题。我在网上看到泛型的例子很简单,如下:
    
public class fan<T>
{
public T a;
public void getdata(T a)
{this.a =a ;}
public T setdata()
{ return a; }
}

我有疑问,像这样简单的情况就一个获取值设置值有必要用到泛型类去操作吗?唯一方便的就是数据的装箱和拆箱,如下:

fan<int> h = new fan<int>();
h.setdata(10); //比如设置一个值10
int sum = h.getdata() + 5; //这里就不需再拆箱操作了

我看到资料上说泛型的作用有:确保代码的安全性,减少代码的重复,还有就是泛型类的类型由外部决定。我都理解,但是却不知道怎么用,实际情况下用在何处,什么情况下经常使用,就高手赐教!!
...全文
411 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuandonghuia 2012-03-27
  • 打赏
  • 举报
回复
当你程序用到的时候,就是你顿悟的时候。
ktei2008 2012-03-27
  • 打赏
  • 举报
回复
我的建议是:你可以暂且不管它的实际作用。你需要做的是动手练习,在你自己设计程序的过程中,你会逐渐发现一些规律。比如:“为什么每次我写p.A的时候都要把p.A向下转型呢?这样太麻烦了,一定有更好的办法”。
EnForGrass 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 yhj8848 的回复:]
这两天我在学习C#,当碰到泛型这个概念时,却有些迷茫,原来学VB.NET是也碰到过,那时觉得泛型没有什么用,就直接跳过去了,现在又碰到了,想下决心理解这个问题。我在网上看到泛型的例子很简单,如下:
C# code

public class fan<T>
{
public T a;
public void getdata(T a)
……
[/Quote]
有时候由于找不到合适的数据结构去表示一些数据时,或者操作复杂的数据结构,简化很多操作。你就会想到泛型
vinjent 2012-03-27
  • 打赏
  • 举报
回复
這裡有很詳細的說明
http://msdn.microsoft.com/zh-cn/library/512aeb7t(v=vs.80).aspx
它用在很多地方,陣列、方法、委托、類、接口及數組您一定有機會用上,學習總是覺得很多東西沒有用,但當您遇上麻煩時,很多東西就會變的很好用。
minatian 2012-03-27
  • 打赏
  • 举报
回复
推荐看一下 张子阳的 C#中的泛型
http://www.tracefact.net/CSharp-Programming/Generics-In-CSharp.aspx
whycom 2012-03-27
  • 打赏
  • 举报
回复
继承是纵向的,泛型是横向的
  • 打赏
  • 举报
回复
[Quote=引用楼主 yhj8848 的回复:]
这两天我在学习C#,当碰到泛型这个概念时,却有些迷茫,原来学VB.NET是也碰到过,那时觉得泛型没有什么用,就直接跳过去了,现在又碰到了,想下决心理解这个问题。我在网上看到泛型的例子很简单,如下:
C# code

public class fan<T>
{
public T a;
public void getdata(T a)
……
[/Quote]

发型的好处就像是LZ说的一样,安全性高,减少了代码的重复性。泛型为什么安全性高? 因为它对数据类型作了约束,所以保证了数据的安全性。

至于用的话,多练就行了。 刚开始是这样的了,LZ,祝你成功。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧