标题:【求助】List<T> t;这句代码如何理解?
只看楼主
huangjun0210
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-10-12
结帖率:83.33%
已结贴  问题点数:20 回复次数:3 
【求助】List<T> t;这句代码如何理解?
List<T> t;这句代码如何理解?
其中T表示一个类,t表示T类的对象
搜索更多相关主题的帖子: List 代码 
2010-10-13 00:47
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:5 
个人理解 List<T> 表示泛型类。 例如List<T> t 楼主可以理解t为是一个T类型的数组,个数为0 ,接受 null 作为引用类型的有效值并且允许有重复的元素。 另外按照MSDN的解释 List<T> 类在大多数情况下执行得更好并且是类型安全的。

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-10-13 08:33
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:15 
泛型集合。
---------------------------------------------------------------------------
比如说,你写一个集合类,集合类中的数据又都是固定的,例如:int类型。
如果你想让集合类中存储的是char类型或double类型,怎么办?修改源代码?
这样不方便,所以提供一个模板机制,让这个集合类可以使用任意一中类型,
而这种类型用T来代替。
例如:
程序代码:
public class SeqList<T>
{ 
    private T[] dataItems;
    private int size;

    public SeqList()
    {
        dataItems = new T[256];
        size = 0;
    }

 
    public int Size
    {
        get
        {
            return size;
        }
    }
    public T this [ int i]
    {
        get
        {
            return dataItems[i];
        }
    }

    public void Delete(T item)
    {
        if (this.size == 0)
        {
            return;
        }
        else
        {
            int index = -1;
            for (int i = 0; i < this.size; i++)
            {
                object obj1 = dataItems[i] as object;
                object obj2 = item as object;
                if ( obj1.Equals( obj2))
                {
                    index = i;
                    break;
                }
            }

            while (index < size - 1)
            {
                dataItems[index] = dataItems[index + 1];
                index++;
            }
        }
    }

    public void Insert(T item)
    {
        if (size < 256)
        {
            dataItems[size] = item;
            size++;
        }
    }

    public void Insert(T item, int index)
    {
        if (size < 256 && index < size)
        {
            int saveIndex = index;
            T temp = dataItems[ index], temp_1;
            while (index < size)
            {
                temp_1 = dataItems[ index + 1];
                dataItems[index + 1] = temp;
                temp = temp_1;
            }

            dataItems[saveIndex] = item;
        }
    }

    public int Find(T item)
    {
        for (int index = 0; index < size; index++)
        {
            object obj1 = dataItems[index] as object;
            object obj2 = item as object;
            if ( obj1.Equals( obj2))
            {
                return index;
            }
        }

        return -1;
    }

    public void ClearList()
    {
        this.size = 0;
    }
}

public class Program
{
    private static SeqList<int> list = new SeqList<int>();

    public static void Main()
    {
        Random random = new Random(DateTime.Now.Second);
        for (int i = 0; i < 10; i++)
        {
            list.Insert(random.Next(1, 100));
        }

        PrintList<int>(list);
        Console.ReadKey();
    }

    public static void PrintList<T>(SeqList<T> list)
    {
        for (int i = 0; i < list.Size; i++ )
        {
            Console.Write(list[i] + " ");
        }
        Console.WriteLine();
    }

}


[ 本帖最后由 zhoufeng1988 于 2010-10-13 11:52 编辑 ]
2010-10-13 11:51
筱晓绾
Rank: 10Rank: 10Rank: 10
来 自:湖南
等 级:贵宾
威 望:12
帖 子:512
专家分:1736
注 册:2010-9-1
得分:0 
.....
2010-10-13 11:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322741-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021174 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved