14、C编程中的特殊功能与特性

C#编程中的特殊功能与特性

1. 不可动态调用的函数

有些函数无法进行动态调用,具体包括:
- 扩展方法(通过扩展方法语法)
- 接口的任何成员(通过接口)
- 被子类隐藏的基类成员

这是因为动态绑定需要两个信息:要调用的函数名称和调用该函数的对象。然而,在上述三种不可调用的场景中,都涉及到一个额外的类型,这个类型只有在编译时才知道,并且无法动态指定这些额外的类型。
- 调用扩展方法时,额外的类型是扩展类,它是通过源代码中的指令隐式选择的(这些指令在编译后会消失)。
- 通过接口调用成员时,需要通过隐式或显式转换来传递额外的类型。(对于显式实现,不转换为接口就无法调用成员)。
- 调用隐藏的基类成员时,必须通过转换或 base 关键字指定额外的类型,而这个额外的类型在运行时会丢失。

2. 运算符重载

可以重载运算符,为自定义类型提供更自然的语法。运算符重载最适合用于实现表示相当原始数据类型的自定义结构体。例如,自定义数值类型是运算符重载的理想选择。

可以重载以下符号运算符:

+   -   *   /   ++   --   !   ~   %   &   |   ^
==  !=  <   <<  >>   >

可以重写隐式和显式转换(使用 implicit explicit 关键字),也可以重写 tr

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值