c#泛型概念问题 5
list<T>是个泛型类,提供给list<T>泛型的类型是T。泛型本身是一个类又怎么讲泛型的类型?...
list<T>是个泛型类,提供给list<T>泛型的类型是T。
泛型本身是一个类又怎么讲泛型的类型? 展开
泛型本身是一个类又怎么讲泛型的类型? 展开
5个回答
展开全部
这样和你说吧 ArrayList s = new ArrayList () 这是非泛型列表,当你去出值的时候,要去转型,但是如果转型不正确就会报错
demo: ArrayList s = new ArrayList () ; s.Add("aaa"); 如你所见我放了一个String,但是ArrayList取出的值统统都是object,所以我要转型。 那么 Convert.ToInt32(s[0]),这时候就出错了,应为String不能隐转int。 所以类型 List<T>出现了,他的出现就是为了规定存储类型并在取出值以后不用人们再去手动转型。
demo List<string> d = new List<string>(); d.Add("aaa"); d[0]取出的也是string不用再去手动转型了。 而当你企图d.Add(3)时候系统会抛出编译错误。 也就是这里的泛型就是你希望约束存储的类型
demo: ArrayList s = new ArrayList () ; s.Add("aaa"); 如你所见我放了一个String,但是ArrayList取出的值统统都是object,所以我要转型。 那么 Convert.ToInt32(s[0]),这时候就出错了,应为String不能隐转int。 所以类型 List<T>出现了,他的出现就是为了规定存储类型并在取出值以后不用人们再去手动转型。
demo List<string> d = new List<string>(); d.Add("aaa"); d[0]取出的也是string不用再去手动转型了。 而当你企图d.Add(3)时候系统会抛出编译错误。 也就是这里的泛型就是你希望约束存储的类型
展开全部
list<T>是泛型列表,泛型只是代表了一类虚拟的类型,只有把泛型实例化,也就是赋予一定的值,才有意义,比如给变量str赋值10,那么T就是int类型了;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以把泛型理解成可以容纳任何类型的列表
Arraylist 只能放字符串
list<int>就是一个int型的列表
至于定义上可能有区别
但是你就当成这样用就可以了
Arraylist 只能放字符串
list<int>就是一个int型的列表
至于定义上可能有区别
但是你就当成这样用就可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
泛型就是一个特殊的类型,
List<T> 就是因为你确定不了T的类型 所以才会写占位符“T”,再你用这个方法的时候你就要指定T的类型,然后再使用
List<T> 就是因为你确定不了T的类型 所以才会写占位符“T”,再你用这个方法的时候你就要指定T的类型,然后再使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类型说的是T ,T 是占位符,若int string等 都可以用的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询