-
各组态控件在大彩串口屏上的静态和动态绑定详解
资源介绍
7.2 静态和动态绑定
根据构成表达式(参数、操作数、接收器)的类型或值确定操作含义的过程通常称为绑定。例如,方法
调用的含义是根据接收器和参数的类型确定的。运算符的含义是根据其操作数的类型确定的。
在 C# 中,操作的含义通常在编译时根据其构成表达式的编译时类型确定。同样,如果表达式包含错误,
编译器将检测并报告该错误。此方法称为静态绑定。
但是,如果表达式为动态表达式(即类型为 dynamic),则这指示它所参与的任何绑定都应基于其运行
时类型(即它在运行时所表示的对象的实际类型),而不是它在编译时的类型。因此,此类操作的绑定
推迟到要在程序运行过程中执行此操作的时间。这称为动态绑定 (dynamic binding)。
当操作是动态绑定时,编译器只执行很少检查或根本不执行检查。而当运行时绑定失败时,错误将在运
行时报告为异常。
C# 中的以下操作会进行绑定:
成员访问:e.M
调用方法:e.M(e1,…,en)
委托调用: e(e1,…,en)
元素访问:e[e1,…,en]
对象创建:new C(e1,…,en)
重载的一元运算符:+、-、!、~、++、--、true、false
重载的二元运算符:+、-、*、/、%、&、&&、|、||、??、^、<<、>>、==、!=、>、<、>=、<=
赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=
隐式转换和显式转换
不涉及动态表达式时,C# 默认为静态绑定,这表示在选择过程中使用构成表达式的编译时类型。但是,
当上面列出的操作中的构成表达式之一为动态表达式时,操作会改为动态绑定。
- 上一篇: 运算符和表达式-C#入门经典教程
- 下一篇: 基本表达式-大彩串口屏各组态控件详细介绍