C#图解教程读书笔记(二 类、结构体、枚举、数组、接口等)


提要,此文章并不会记录过于基础的东西,只会记录个人认为比较重要的概念以及实用的代码,如果您是新手强烈建议阅读实体书,自己一步一步敲一遍


第七章 深入理解类

  • 按照推荐的编码 属性比共有字段更好
  • 静态构造函数 不需要加访问修饰符直接在构造函数前加static,静态构造函数由系统调用,一般用于初始化静态成员。 静态构造函数调用时机 1、类的任何实例被创建前 2、类的任何静态成员被引用前
  • 索引器 索引器和属性很像有get有set,索引器是可以重载的(返回类型和参数列表都可以不同)
	returnType this[Type t1] //不止一个参数但最少一个参数
	{
		get {}
		set {}
	}

第八章 类和继承

  • internal 对程序集内部所有类可见、对程序集外部类不可见
  • protected internal 对程序集内部所有类可见和继承该类的派生类可见。是并集而不是交集

第九章 表达式和运算符

  • 字符串字面量中 例如@"\n"将不会解释为换行,编译器让相同的字符串字面量共享堆中同一内存位置
  • 比较问题 一般比较是比较2个引用是否相等,而字符串比较是比较长度与内容

第十章 语句

using语句 内部会有隐式的try…finally来处理潜在的异常


第十一章 结构体

  • 结构体和类类似,可以拥有实例构造函数和静态构造函数,但不允许拥有析构函数
  • 当结构体用于返回值和参数时 将会创建它的副本,当有需要时可以配合ref/out使用

第十二章 枚举

  • 设置枚举底层类型 每一个枚举成员都会被赋予一个底层类型的常量(默认为int)、所以我们可以显示的设置底层类型
	public enum Enum1:ulong {}
	public enum Enum2:byte {}
  • 枚举的位标志[Flags] 可以获得更多的格式化信息等,这里引用了ET中Entity中的枚举
    [Flags]
    public enum Enum1 : byte
    {
        None = 0,
        IsFromPool = 1, // 01
        IsRegister = 1 << 1, // 10
        IsComponent = 1 << 2, // 100
        IsCreate = 1 << 3, // 1000
    }

    public enum Enum2 : byte
    {
        None = 0,
        IsFromPool = 1, // 01
        IsRegister = 1 << 1, // 10
        IsComponent = 1 << 2, // 100
        IsCreate = 1 << 3, // 1000
    }


第十三章 数组

  • 交错数组 数组的子数组也是数组,初始化也分两步
			// 初始化顶层数组
            int[][] int1 = new int[3][]; 

            int1[0] = new int[]{ 1, 2, 3 };
            int1[1] = new int[] { 1, 2, 3 };
            int1[2] = new int[] { 1, 2, 3 };
  • 注意点 CIL对于一维数组有特定的优化指令,而矩阵数组没有,所以一般可以考虑使用一维数组的交错数组。
  • Clone 针对值类型数组Clone会是2个独立的数组、针对引用类型数组Clone也会是一个数组,但是数组中元素和原数组元素指向同一个对象,这里原文图挺好理解的
  • Array.Clear 将会将数组内所有元素,设置为默认值。

第十四、十五章 委托、事件 没啥特殊的

第十六章 接口

  • 接口与as 如果将类实例强制转换为没有实现的接口会抛异常、但是如果使用as将会返回一个null。
  • 基类满足接口的实现,派生类将不用强制实现接口。
  • 如果继承了多个接口,多个接口需要实现相同的函数,可通过显示实现接口名.函数名来实现。但是这样无法直接访问显示实现,需要转化成接口的引用才能调用
  • 接口是可以继承的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值