关于学习泛型

liujiahaol123 2013-06-22 04:42:17
我现在有些基础了,但是练习量还不够,接触了泛型这个东西,想请教一下泛型比较重要么,是现在学习还是多些练习量了再来学
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lr5420511 2013-06-25
  • 打赏
  • 举报
回复
引用 1 楼 qingfeng_wu 的回复:
泛型其实也没有什么,就是给集合加个<>尖叫括号,然后在里面规定放什么类型,那么往集合加对象的时候,就只能是<>尖括号里面的数据类型。就这么简单!
threenewbee 2013-06-22
  • 打赏
  • 举报
回复
呵呵,你知道不学是不行的,非要人家给你确认下不学是可以的。你这不是掩耳盗铃么?
本拉灯 2013-06-22
  • 打赏
  • 举报
回复
引用 楼主 liujiahaol123 的回复:
我现在有些基础了,但是练习量还不够,接触了泛型这个东西,想请教一下泛型比较重要么,是现在学习还是多些练习量了再来学
泛型与非泛型最简单的可以这么理解 拿两个类 List<T> 这是2.0后的 与ArrayList 这个在NET1.1就有了 这两个都是集合。 List<T> 只能是装一种T类型 ArrayList可以装任意的Object 不过我们使用这两个时一般都只装一种常用来两个例子 List<int> listT=new List<int>(); for(int i=0;i<10;i++) { listT.Add(i); } ArrayList list=new ArrayList(); for(int i=0;i<10;i++) { list.Add(i); } 上面两个看起来都是一样的。 但实际情况。ArrayList 有作了封箱子 拆箱过程 List<int> 取值可以直接这样取 int val=listT[0]; ArrayList只能这么取 int val=(int)list[0]; <--这个就是拆箱过程
tcmakebest 2013-06-22
  • 打赏
  • 举报
回复
谈一下我认为的泛型,泛型就是结合了强类型和方便性的一个类模板。 在没有泛型的时候,如果需要对不同类型的变量执行相同的操作,需要各自写一套类 使用了泛型后,就只需要写一个类了,把不同的类型传进去,本质上就产生了不同的类。
Regan-lin 2013-06-22
  • 打赏
  • 举报
回复
泛型可以限定数据类型,等到你有一定水平了就觉得这个重要了!
  • 打赏
  • 举报
回复
泛型就是类型的参数,从而把映射出类型来 --> 泛型就是“通过类型的参数,从而映射出类型来” 在你直接定义一个Class的时候,没有参数,只有一个类型名称。 现在稍微复杂一点了,变为类型映射了。类型 MyLog<ing>、MyLog<string>、MyLog<User>、MyLog<Map> 等等,都是各种各样的类型。你给 MyLog 模板输入一个类型参数,那么 c#(其实是.net)就给你在Jit运行时动态地生成一个类型。这就是泛型的概念。 (实际上对于引用类型不一定是生成多个,但是那是实现上的问题,不影响设计概念。)
  • 打赏
  • 举报
回复
如果你自学建筑学,请问你如何能够学到跟一个建筑专业的合格毕业生的设计水平呢? 而软件研发可能更甚。因此我认为靠自学(而不是靠老师)的人,大多数顶多只能自学成流水线上的工人的水平。我不知道现在的公司需要什么样的人,但是我知道一点,如果你想做一个软件设计师那么你尽量不要徘徊在“我要不要学习做花卷啊?”这种问题上。
  • 打赏
  • 举报
回复
引用 楼主 liujiahaol123 的回复:
我现在有些基础了,但是练习量还不够,接触了泛型这个东西,想请教一下泛型比较重要么,是现在学习还是多些练习量了再来学
还真是无法回答你这个问题。你这个问题就好像是问“我现在学会做烧饼了,是现在就学做花卷呢?还是回去休学一年再来学做花卷?” 泛型就是类型的参数,从而把映射出类型来。所谓映射,比如说数学符号 sin(x) 这就是将输入的角度x映射为输出的-1~1之间的实数值,这就叫做映射。 例如我们写:
publi class MyLog<T>
{
     public T Value{get;set;}
     public FineInfo file{get;set;}
 
     public void Write()
     {
         using(var fw= file.AppendText())
         {
               fw.Write("xxx点xxx分xxx秒写入一条信息/r/n");
               fw.Write(JsonConvert.SerializeObject(value));
         }
     }   
}
那么显然,这个编程模板就可以根据你输入的类型参数T,而自动映射出各种各样的 MyLog 具体类型来。这就跟上面举例的 sin(x) 是类似的。
  • 打赏
  • 举报
回复
现在的你可能只需要关注List<T>就可以了。
吴青峰 2013-06-22
  • 打赏
  • 举报
回复
泛型其实也没有什么,就是给集合加个<>尖叫括号,然后在里面规定放什么类型,那么往集合加对象的时候,就只能是<>尖括号里面的数据类型。就这么简单!

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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