C#零碎三

  1. 枚举总是具有一个基础类型,可以是除char之外的任意整型
  2. 为值类型调用ReferenceEquals()总是返回false
  3. ==操作符无法重载
  4. 和赋值操作符相似,条件逻辑操作符不能显示重载,但由于逻辑操作符&和|可以重载,而条件操作符由逻辑操作符构成,所以实际能间接重载,x&&y可以作为x&y处理,其中y必须求值为true,类似的,在x求值为false的时候,x||y可以作为x|y处理,要允许将类型求值为true或false,就需要重载true/false一元操作符
  5. C#要求所有的运算符重载都声明为public和static,这表示它们与它们的类或结构相关联,而不是与实例相关联
  6. 不添加任何访问修饰符的类默认定义成internal
  7. 终结器允许程序员写代码来清理类的资源。但和使用new显示调用构造函数不同,终结器不能从代码中显示调用。没有和new对应的操作符(比如像delete这样的操作符)。相反,是垃圾回收器负责为对象实例调用终结器。
  8. 终结器不允许传递任何参数,所以不可重载,此外,终结器不能显示调用,调用终结器的只能是垃圾回收器
  9. 所有异常通常都应包含以下三个构造函数:无参构造函数,获取一个string参数的构造函数以及同时获取一个字符串和一个内部异常作为参数的构造函数
  10. default操作符可为任意类型提供默认值,包括类型参数
  11. 在泛型类继承的情况下,不仅可以保留类本来的约束(这是必须的),还可添加额外的约束,从而对派生类的类型参数进行更大的限制。但重写虚泛型方法时,需遵守和基类方法完全一样的约束。额外的约束会破坏多态性,所以不允许新增约束。另外,重写版本的类型参数约束是隐式继承的。
  12. 所有委托都不可变,委托创建好后无法更改
  13. 要在调用委托钱检查它的值是不是空值
  14. 要从C#6.0起在调用Invoke()前使用空条件操作符
  15. 将“-=”操作符应用于委托会返回新实例
  16. 匿名类型“不可变”,一经实例化,再更改它的某个属性,就会造成编译错误
  17. 匿名类型不能使用集合初始化器,因为集合初始化器要求执行一次构造函数调用,但根本没办法命名这个构造函数,解决方案是定义像下面这样的方法
static List<T> CreateList<T>(T t){return new List<T>();}

初始化匿名类型的集合的另一个方案是使用数组初始化器。由于无法在构造函数中指定数据类型,匿名数组初始化器允许使用new[]来实现数组初始化语法,参考此篇
18. 元组和匿名类型的一个区别在于,匿名类型事实上是引用类型,而元组是值类型,哪个有利取决于类型的使用模式,如类型经常拷贝,且内存占位超过128位,引用类型可能更佳,否则元组更佳,也是更好的默认选择
19.一个类被另一个类继承后,里面的数据相当于子类单独继承了一份,和其他子类互不相关,保持独立,比如集合之类的数据
20.空字符表示‘ ’
21.string中的Trim方法可以删除当前字符串的开头和结尾的空白字符
22.数字字符直接可以++或–,得到的还是字符类型,比如char a=‘0’,想要得到’1’,可以直接a++
23.对于字典类型,如果在键还不存在的时候做++操作会提示“给定键不在字典中”,如

Dictionary<int, int> s = new Dictionary<int, int>();

s[2]++;

foreach(KeyValuePair<int,int> keyValuePair in s)
{
    WriteLine(keyValuePair);
}

在这里插入图片描述
24.C#迭代器中,只有当MoveNext方法被调用的时候,yield return前的内容才会被执行
25.结构体不能继承类,结构体;类不能继承结构体,因为结构体是密封的
26.类类型的深拷贝可以使用反射将类的属性全部设置到一个新的对象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值