C#学习2——数组、运算符与类型转换

    这两天阅读了第5章和第6章,昨天加班到很晚,没时间书写,今天补上。

    对于数组我有这些体会:

    数组可分为简单数组、多维数组和锯齿数字。

    数组可以使用数据类型加[]来声明,然后使用new和数组元素或数组元素长度(length)来初始化。

    数组中的元素使用索引来访问。

    Array类是一个抽象类,不能直接实例化来创建数组,但是可以使用Array的static 方法来创建数组,使用GetValue()读取值,SetValue()设置值。

    使用Array类可以创建索引不基于0个数组。

    可以使用ICloneabel接口定义的Clone()方法来创建数组的浅表副本。如果数组元素是值类型,就会复制所有的值,如果数组元素是引用类型,就只复制引用。

    Array.Copy()方法也可以创建浅副本,与Clone()的区别在于后者会创建一个新的数组,而前者只是传送了阶数相同、有足够元素空间的已有数组。

    如果需要包含引用类型的数组的深副本,就必须迭代数组,创建新对象。

    Array实现对数组的冒泡排序。Sort()方法需要实现数组中的元素实现IComparable接口,基本类型已实现该接口,而自己定义的类型必须实现该接口的唯一方法CompareTo()。Sort()的2个参数的重载形式需要实现IComparer的方法CompareTo()。

    IEumerable接口是又foreach语句用于迭代数组的接口。ICollection接口派生于IEumerable接口,IList接口派生与ICollection接口。

    C#的foreach语句不会解析为IL代码中的foreach语句。C#编译器会把foreach语句转换为IEumerable接口的方法和属性。

    yield return 语句用于返回集合的一个元素,并移动到下一个元素上。yield break可停止迭代。

    运算符:

    is运算符可以检查对象是否与特定的类型兼容。

    as运算符用于执行引用类型的显式类型转换。

    sizeof运算符可以确定堆栈中值类型需要的长度(单位是字节)。

    typeof运算符返回一个表示特定类型的System.Type对象。

    可空类型?

    空接合运算符??

    类型转换分为隐式转换(implicitly)和显式转换(explicitly)。

    对象的相等比较。

    运算符使用关键字operator来重载。

    读下来就觉得讲解IEumerable时有些不懂,运算符重载有些难理解,仔细想想也就懂了。

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值