C# 笔记

1、C#语法之virtual关键字 - 爱码网

virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写;

virtual 修饰符不能与 static、abstract、private 或 override 修饰符一起使用。

不同于C++,C#不允许多继承,因此不存在由多继承产生的二义性问题;因此C#中不需要virtual修饰类;

abstract可以用于修饰类、方法、属性、索引器或事件声明,且修饰的类为抽象类,只能作为基类使用,不能实例化;不能用 sealed 修饰符修改抽象类,意味着该类不能被继承;

2、C#中问号(?)用法总结 - 码农教程

 a?.b 或 a?[b]的运算逻辑是:
    1、如果a是null,那么a.b和a[b]都会抛出空指针异常,而a?.b和a?[b]都返回null,而不会抛出异常
    2、如果a不是null,那么a?.b和a?[b]等价于a.b和a[b],如果a.b和a[b]抛出异常,a?.b和a?[b]也会抛出相同的异常
    expr1 ?? expr2
    1、如果表达式expr1的结果是null,那么会计算表达式expr2,并返回表达式expr2的结果
    2、如果表达式expr1的结果不是null,那么会直接返回表达式expr1的结果,此时并不会计算表达式expr2的结果

合并运算符(??)也可以类似级联的使用,与null 条件运算符(?.)一起使用时

合并运算符(??)还经常和throw表达式结合,用于简化空指针判断,它常出现在构造函数和属性构造器中

 ??=也称为合并赋值运算符,是合并运算符(??)的一个特殊情况,它类似于+=、-=等运算,用于简化赋值运算:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值