日期:2014-05-18  浏览次数:20903 次

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


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

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


我看到资料上说泛型的作用有:确保代码的安全性,减少代码的重复,还有就是泛型类的类型由外部决定。我都理解,但是却不知道怎么用,实际情况下用在何处,什么情况下经常使用,就高手赐教!!

------解决方案--------------------
探讨
这两天我在学习C#,当碰到泛型这个概念时,却有些迷茫,原来学VB.NET是也碰到过,那时觉得泛型没有什么用,就直接跳过去了,现在又碰到了,想下决心理解这个问题。我在网上看到泛型的例子很简单,如下:
C# code

public class fan<T>
{
public T a;
public void getdata(T a)
……

------解决方案--------------------
继承是纵向的,泛型是横向的

------解决方案--------------------
推荐看一下 张子阳的 C#中的泛型
http://www.tracefact.net/CSharp-Programming/Generics-In-CSharp.aspx
------解决方案--------------------
這裡有很詳細的說明
http://msdn.microsoft.com/zh-cn/library/512aeb7t(v=vs.80).aspx
它用在很多地方,陣列、方法、委托、類、接口及數組您一定有機會用上,學習總是覺得很多東西沒有用,但當您遇上麻煩時,很多東西就會變的很好用。
------解决方案--------------------
探讨
这两天我在学习C#,当碰到泛型这个概念时,却有些迷茫,原来学VB.NET是也碰到过,那时觉得泛型没有什么用,就直接跳过去了,现在又碰到了,想下决心理解这个问题。我在网上看到泛型的例子很简单,如下:
C# code

public class fan<T>
{
public T a;
public void getdata(T a)
……

------解决方案--------------------
我的建议是:你可以暂且不管它的实际作用。你需要做的是动手练习,在你自己设计程序的过程中,你会逐渐发现一些规律。比如:“为什么每次我写p.A的时候都要把p.A向下转型呢?这样太麻烦了,一定有更好的办法”。