首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是不在Silverlight中使用ArrayList的理由?

不在Silverlight中使用ArrayList的理由主要有以下几点:

  1. 类型安全:ArrayList存储的数据类型是object,这意味着在运行时才确定数据类型,这可能导致类型转换异常和运行时错误。而泛型集合(如List<T>)可以在编译时检查类型,从而提高代码的可读性和可维护性。
  2. 性能:ArrayList是非泛型集合,因此在使用过程中需要进行类型转换,这可能导致性能下降。而泛型集合在编译时就确定了数据类型,因此在运行时不需要进行类型转换,从而提高了性能。
  3. 扩展性:ArrayList是基于数组的实现,因此在扩展容量时需要创建新的数组并复制原有数据,这可能导致性能下降。而泛型集合(如List<T>)可以通过内部实现机制更好地处理容量扩展,从而提高了扩展性。
  4. 泛型支持:泛型集合(如List<T>)支持泛型,可以在编译时检查类型,从而提高代码的可读性和可维护性。而ArrayList不支持泛型,需要手动进行类型转换,这可能导致类型转换异常和运行时错误。
  5. 互操作性:泛型集合(如List<T>)支持互操作性,可以与其他语言和平台的集合类型进行交互。而ArrayList是基于.NET平台的实现,不支持跨平台互操作。

因此,在Silverlight中使用泛型集合(如List<T>)而不是ArrayList可以提高代码的可读性、可维护性、性能、扩展性和互操作性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

原来Silverlight 4可以玩UDP!

Silverlight3scoket只支持tcp协议,而对于udp一直以安全原因拒绝支持,但在silverlight4可以惊喜发现 System.Net.Sockets下多出了二个类: UdpAnySourceMulticastClient...UdpAnySourceMulticastClient允许客户端从任何源接收数据(即多对多),而UdpSingleSourceMulticastClient可以让客户端从单一源接收数据(即一对多) 知道这个能干什么了吗...多人(视频)聊天室,单点(视频)广播 早上还到国外一个silverlight牛人博客上看到了一篇文章给出了演示: http://www.silverlightplayground.org/post/...,不过需要说明:出于安全考虑,silverlightudp仍然需要一个服务端用于处理策略文件请求。...(这一点跟flashudp处理策略很相似,flash 10udp也需要先连接到一个Adobe Stratus服务器) udp示例代码下载: http://www.silverlightplayground.org

50190
  • 【47期】ArrayListremove如何操作

    面试题:ArrayListremove如何操作?...我接到面试电话一刻,以为骚扰电话打来,一看显示四川乐山,哦,原来我投成都蚂蚁面试,说简单聊聊吧,上来问了个ArraList热了下身。...ArrayList个变长数组集合类,实现是通过Object[],当向ArrayList添加元素数量大于内部数组容量时,会进行自动扩容1.5倍,新增和删除我们可以通过下标,指定位置新增和删除,如果在有值位置插入和删除数据...面试官:嗯,那你谈谈ArrayListdd扩容机制吧。 谈扩容机制前,我们需要对ArrayList数据结构有个大致了解,下面会结合图片讲述。...,则默认对象内容默认该值 private static final Object[] EMPTY_ELEMENTDATA = {}; //无参初始化并不是在无参构造方法位置执行,而是在第一次执行

    16410

    什么ArrayList集合不能使用foreach增删改?

    来源:http://suo.im/4XaI8Q 编程过程中常常需要使用到集合,而ArrayList也是我们常常使用,但是最近在一次删除和增加中出现了一些问题,分享记录下。...找到ArrayListiterator()方法 使用自己Itr内部类,并且实现了Iterator接口 迭代器本质先调用hasNext()方法判断存不存在下一个元素,然后再使用next()方法取下一个元素...arraylist2为什么remove失败呢,因为他在循环第二次时候,也remove成功了,但是第三次判断next时候cursor值为2导致不等于现在size 1,所以执行了next方法,最重要来了...,之前remove操作导致ArrayListmodCount值加1,然后Itr类expectedModCount保持不变,所以会抛出异常。...同理可得,由于add操作也会导致modCount自增,所以不允许在foreach删除、增加、修改ArrayList元素。

    73130

    什么ArrayList集合不能使用foreach增删改?

    来源:http://suo.im/4XaI8Q 编程过程中常常需要使用到集合,而ArrayList也是我们常常使用,但是最近在一次删除和增加中出现了一些问题,分享记录下。...使用自己Itr内部类,并且实现了Iterator接口 迭代器本质先调用hasNext()方法判断存不存在下一个元素,然后再使用next()方法取下一个元素 ?...arraylist2为什么remove失败呢,因为他在循环第二次时候,也remove成功了,但是第三次判断next时候cursor值为2导致不等于现在size 1,所以执行了next方法,最重要来了...,之前remove操作导致ArrayListmodCount值加1,然后Itr类expectedModCount保持不变,所以会抛出异常。...同理可得,由于add操作也会导致modCount自增,所以不允许在foreach删除、增加、修改ArrayList元素。

    71210

    ArrayList实现原理分析(Java源码剖析)ArrayList使用存储数据结构ArrayList初始化ArrayList如何动态增长ArrayList如何实现元素移除ArrayList

    ArrayList使用存储数据结构 ArrayList初始化 ArrayList如何动态增长 ArrayList如何实现元素移除 ArrayList小结 ArrayList我们经常使用一个数据结构...ArrayList作为List接口一个实现。 那么ArrayList背后使用数据结构是什么呢? ArrayList如何保证动态增加容量,使得能够正确添加元素呢?...需要说明,本文所分析源码引用自JDK 8版本 ArrayList使用存储数据结构 从源码我们可以发现,ArrayList使用存储数据结构Object对象数组。...ArrayList如何动态增长 当我们像一个ArrayList添加数组时候,首先会先检查数组是不是有足够空间来存储这个新添加元素。如果有的话,那就什么都不用做,直接添加。...ArrayList小结 ArrayListList接口一个可变大小数组实现 ArrayList内部使用一个Object对象数组来存储元素 初始化ArrayList时候,可以指定初始化容量大小

    1.6K30

    教你如何高效使用JavaArrayList

    ArrayList集合简介  ArrayListJava集合框架一个动态数组,它继承了AbstractList类并实现了List接口,可以存储任意类型对象。...应用场景案例  ArrayList在Java编程应用非常广泛,下面列举几个常见应用场景:需要动态地添加或删除元素,且需要支持随机访问情况下,可以使用ArrayList。...需要对一个已知集合进行遍历或查找时,可以将该集合存储在ArrayList。需要对一个元素集合进行排序时,可以将其存储在ArrayList,并使用Collections.sort方法进行排序。...测试用例  根据如上对ArrayList集合理论知识进行了讲解之后,如下我们将通过写一个实测来辅助大家进行理解,到底如何使用JavaArrayList类。...ArrayList一个线程不安全类,因此在多线程环境下需要采取额外措施保证线程安全。总结  ArrayList作为Java集合框架一个重要部分,在Java编程扮演着非常重要角色。

    30081

    ZFS是什么?使用ZFS理由及特性介绍

    既然 OpenZFS 项目已经和 Oracle 公司分离开了,有人可能好奇他们为什么使用和 GPL 兼容许可证,这样就可以把它加入到 Linux 内核中了。...这几乎不可能(因为一些贡献者可能已经去世了或者很难找到),因此他们决定保留原来许可证。 ZFS 是什么,它有什么特性? 正如前面所说过,ZFS 一个先进文件系统。...这意味着,它与其他文件系统不同,ZFS 可以创建跨越一系列硬盘或池文件系统。不仅如此,你还可以通过添加硬盘来增大池存储容量。ZFS 可以进行分区和格式化 ? 使用ZFS十条理由及特性 1....而且还有一种更为严重情况:在RAID 4和RAID 5阵列,如果系统正在计算Parity数值,并再次写入新数据和新Parity值时候发生断电,那么整个阵列所有存储数据都毫无意义了。...你使用经验是什么? 总结 以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,谢谢大家对ZaLou.Cn支持。

    5.8K20

    base64编码在silverlight使用

    在传统.net应用使用base64编码字符串一件很轻松事情,比如下面这段代码演示了如何将本地文件转化为base64字符串,并且将base64字符串又还原为图片文件. base64编码在传统.net...程序应用(by 菩提树下杨过 ) using System; using System.Drawing; using System.Drawing.Imaging; using System.IO...; namespace Base64Study { /// /// base64编码在传统.net程序应用(by 菩提树下杨过 http://yjmyzz.cnblogs.com...环境,这种简单操作方式却无法使用了,幸好网上有一个开源免费组件FluxJpeg,同时国外有高人已经利用该组件写出了将位图转化为base64方法,这里我们借用一下即可: 代码 <UserControl...最后示例源码地址:http://files.cnblogs.com/yjmyzz/Base64Study.rar 转载请注明出处(菩提树下杨过 )

    1.3K70

    三个理由告诉你,为什么在TF必须使用MPLSoUDP

    正如行业中常见那样,答案可能“取决于”某些具体情况。不过,这里答案却十分明确——必须MPLSoUDP! 在理解为什么选择MPLSoUDP之前,让我们先来看看何时需要使用MPLSoGRE。...答案同样不言而喻,当我们不能使用MPLSoUDP时——这可能是因为我们SDN GW运行软件版本不支持MPLSoUDP——我们使用MPLSoGRE。...源端口对内部数据包执行哈希操作结果。结果,该字段将会出现很大变化。源端口带来了巨大熵! 而这种熵就是我们选择MPLSoUDP原因! 使用MPLSoUDP可以带来不同级别的优势。...这里重要,充当轮询核心每个vRouter核心都会不断检查其分配物理网卡是否有要轮询数据包。在进行轮询操作之前,物理网卡首先在线路上接收到数据包,然后将该数据包“发送”到一个队列。...除非你SDN GW仅支持MPLSoGRE,否则没有理由不适用MPLSoUDP,因为它只有好处!

    82220

    【小家java】关于ArrayListtrimToSize方法使用

    ---- 前言 在看ArrayList源码时候,突然看到一个方法trimToSize,比较好奇,所以自己就试验了一把,看看有什么用。...备注:因为我们平时都会多态方式去处理List,所以我们很少关注ArrayList自己方法,比如trimToSize方法就是一个例子。...因为这个方法不是List接口,而是实现类ArrayList自己。 例子很简单,就是new一个初始容量为10ArrayList,之后向里面加入一个元素。接下来看看debug内容: ?...但是对于java对内存不敏感语言了说,基本上没什么必要这么做。我们只需要知道可以这么做就行,但是没有必要麻烦自己。毕竟我们使用list绝大多数希望还是面向接口去编程,而不是面向实现。...虽然这个方法没什么大作用,但是对知识好奇心,还是学习编程很重要一种态度。

    90110

    请你讲讲数组(Array)和列表(ArrayList)区别?什么时候应该使用Array而不是ArrayList

    剑指-->Offer 01 Array和ArrayList不同点: ①Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。...②Array大小固定ArrayList大小动态变化。 ③ArrayList提供了更多方法和特性,比如:addAll(),removeAll(),iterator()等等。...④对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小基本数据类型时候,这种方式相对比较慢。...02 写在后面 本文章将以“指导面试,智取Offer”为宗旨,为广大Java开发求职者扫清面试道路上障碍,成为面试官眼中精英,朋友圈里大神。...在面试场上“胸有成竹”,坦然面对每个面试官“拷问”,做到进可攻“项目经理、项目总监”等高级职务,视之为翘首可及;退可守“Java工程师、Java测试工程师”等职务,视之为探囊取物。

    1.7K30

    java什么重载什么重写_java重载

    大家好,又见面了,我你们朋友全栈君。...我们先从定义上区分重载和重写: 1、重载(overload)发生在同个类具有相同方法名,不同参数类型(不同参数类型包括:参数个数和参数类型和顺序不同),返回值相同或者不同一种多态体现...例如:下类AnimalgetFun方法构成了方法重载 public class Animal{ public void getFun(){ System.out.println(“####...(2):子类必须重写父类抽象方法(abstract修饰方法) (3):子类不能继承父类被private修饰属性和方法 (4):子类不能继承父类构造器 列:下列类B方法doSomething重写了类...A方法doSomething public class A{ public String doSomething(Stirng name){ System.out.println(“我父类方法

    1.6K10

    什么Javascript提升

    所以,这里发生了什么?通常来说,人们会把提升解释为声明被移动到了代码顶端。虽然看起来这是正在发生事情,但是清楚理解到底如何才是重要。...显然,代码没有被移动到任何地方,并没有被神奇移动到文件顶端。真正发生事情,在编译阶段,函数和变量声明就被加入内存了。...在上面的例子,正因为这个原因,才能在其代码出现位置之前就访问或调用那个函数。...再看看变量例子: 当声明并初始化一个变量,然后试图使用它时,典型做法: var a = 3; console.log(a); // 3 但是,如果把变量声明放在代码底部会如何呢?...预想3没有打印出来,却成了 undefined。 为什么会这样?因为 JS 只会提升声明。而初始化赋值不会被提升。

    79630

    什么着陆页?企业为什么要做着陆页6大理由

    着陆页可以帮助企业将访客转化为用户一种高效工具。通过使用着陆页,企业可以促成一笔交易,传播促销活动,提供信息并获取访客联系方式。...接下来小编先跟你分享什么着陆页,然后告诉你企业要做着陆页6大理由,一起来看看吧。 ?...一、什么着陆页 着陆页又叫落地页(英文:Langding Page),指用户点击搜索推广、信息流或其他形式广告打开第一个网页,广告主想呈现给用户广告信息,目的就是引导用户做出行动,比如注册...1、着陆页能够帮助企业进行转换 着陆页构成有效 PPC 策略一部分。大约68% B2B 企业使用着陆页面来生成潜在客户以供未来转换。...4、着陆页能够采集重点客户信息 在着陆页也会填写相应表格或问卷,以此来收集客户信息。

    56280

    什么JWT及在JAVA如何使用

    目录 1、为什么使用JWT? 2、JWT 格式 3、使用 JWT 就绝对安全 吗?...也就是说, 使用 JWTS 应用程序不再需要保存有关其用户 cookie 或其他session数据。 此特性便于可伸缩性, 同时保证应用程序安全 1、为什么使用JWT?...在不使用JWT情况下,我们一般选择cookie和session来进行服务鉴权(判断是否登录,是否具有某种权限),但是这是针对于只有一个客户端情况下,现在客户端从pc端增长到了app端,现在就是多端访问了...这就引出了在微服务架构如何进行服务鉴权方案,这个方案就是 JWT. 2、JWT 格式 JWT就是一个字符串,经过加密处理与校验处理字符串,形式为:A.B.C 三段,每一段中间通过 ....大家可以发现,数据原封不动还原了,所以在这里提醒大家对于敏感数据,比如用户密码,账户金额登录信息不应该存到JWT 字符串,因为可以被解密。

    2.9K30

    自动编程不可能,我为什么不在乎人工智能

    还有人给我指出了这方向最新,吹得神乎其神研究,比如微软 Robust Fill…… 我谢谢这些人关心,然而其实我并不在乎,也不看好人工智能。现在我简单讲一下我看法。...也是因为这本书,我第一次轻松而有章法实现了 A* 等算法。我第一次理解到了程序“模块化”是什么,在代码例子引导下,我开始在自己程序里使用“工具函数”,而不再忧心忡忡于“函数调用开销”。...举个例子,由于有了这些“个人助手”,有人就号称类似的技术可以用来制造“机器客服”,使用机器代替人作为客服。他们没有想清楚,客服看似“简单工作”,跟这些语音控制玩意比起来,难度却是天壤之别。...然而这些名词之间,终究换汤不换药。因为没有人真的知道人智能是什么,所以也就没有办法实现“人工智能”。 生活每一天,我这个“前 AI 狂热者”都在为“人类智能”显示出来超凡能力而感到折服。...后来,helloooo 终于引起了清华大学人智组研究生兴趣,来问我:“你这里面使用什么语料库做分析啊?”

    1.6K110
    领券