----
可以重载的运算符
运算符的重载比想象中的更加强大。因为——重载运算符时可以随意定义运算符中操作数的数据类型和返回值的类型。
是的!不只是操作数,连返回值类型也能被重载!...一元运算符
+, -, !, ~, ++, --, true, false
通过重载这些运算符,你可以改变某种类型操作后的返回类型和返回值。
不过,等等!+ 和 - 怎么会是一元运算符?...+5,-6 这些其实是在使用一元运算符,而不是单纯的整数哦。
true 和 false 也能被重载?是的,重载之后,你可以改变 if(foo) 这样的判断的行为。参见:C# 很少人知道的科技。...二元运算符
+, -, *, /, %, &, |, ~, ^, >
其中 ~ 运算符的重载是微软运算符重载部分的官方文档中并没有提及的。...只能被间接重载的运算符
索引器,显示转换或隐式转换
[], (T) x
前面 Avalonia 的绑定语法糖就充分利用了索引器的特点,使得能够在对象初始化器中初始化那些本没有直接定义在类型中的属性。