博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由String类的Split方法所遇到的两个问题
阅读量:6254 次
发布时间:2019-06-22

本文共 1194 字,大约阅读时间需要 3 分钟。

  由于最近在项目中有一个需求需要用到字符串的拆分,然后将拆分后的元素逐个加到一个listview控件中。代码如下:

namespace InitalTest{    class Program    {        static void Main(string[] args)        {            string s = "1+2+3+4+5+6";            //问题1:Split方法第一个参数是一个string[]对象,为什么有些方法当参数为string的时候不用new运算符呢?            string[] sArrs = s.Split(new string[]{
"+"},StringSplitOptions.RemoveEmptyEntries); //问题2:当遍历数组或集合的时候到底选用foreach还是for呢? foreach (string sArr in sArrs) { Console.WriteLine(sArr); } Console.ReadKey(); //程序输出结果: /* 1 2 3 4 5 6 */ } }}

问题1:为什么有些方法当参数为string对象的时候不用new操作符呢?

  原则上CLR要求所有对象都用new操作符来创建的。比如:Myclass mc=new Myclass();int i=new int();但是有些类型经常使用,所以编译器允许代码以简化的语法来操作它们,比如:int i=new int();可以简写为:int i=0;这种语法不仅增强了代码的可读性,而且生成的IL代码与使用new操作符时生成的IL代码是完全一样的。编译器将这种直接支持的类型称为基元类型。而string就是基元类型,所以创建string对象的时候可以使用简写语法。

问题2:当遍历数组或集合的时候到底使用for还是foreach呢?

  这个主要是看for和foreach的区别。

  共同点:for和foreach都可以用来遍历数组和集合。
  不同点:1,语法。foreach比for更简洁。
      2,语义。foreach比for更易懂。
      3,性能。foreach比for性能高。
  所以,当遍历数组或集合时,最好使用foreach语句。只要对象实现了IEumerable接口。

转载地址:http://qjxsa.baihongyu.com/

你可能感兴趣的文章
使用T4模板生成不同部署环境下的配置文件
查看>>
如何把Json格式字符写进text文件中
查看>>
Linux: xclip,pbcopy,xsel用法 terminal 复制粘帖 (mac , ubuntu)
查看>>
[SVN(Ubuntu)] SVN 查看历史详细信息
查看>>
技术出身能做好管理吗?——能!
查看>>
抽象工厂模式
查看>>
如何折叠一段代码使整个代码看起来简洁
查看>>
Quartz2D绘制路径
查看>>
Java知多少(30)多态和动态绑定
查看>>
JDBC操作数据库
查看>>
Android中RelativeLayout的字符水平(垂直居中)对齐
查看>>
--@angularJS--独立作用域scope绑定策略之&符策略
查看>>
乾坤合一~Linux设备驱动之USB主机和设备驱动
查看>>
Python IDLE快捷键【转载合集】
查看>>
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound
查看>>
[C++] string与int, float, double相互转换
查看>>
ubuntu14.04安装chrome
查看>>
oracle中查询含字母的数据[正则表达式]
查看>>
1002. 写这个号码 (20)(数学啊 ZJU_PAT)
查看>>
【LeetCode】224. Basic Calculator
查看>>