C# 类型设计与扩展方法全解析
1. 类型比较与接口实现
在 C# 中,类型比较和接口实现是非常重要的部分。以ComplexNumber类型为例,来看如何进行高效的类型比较和接口实现。
private readonly double real; private readonly double imaginary; } public sealed class EntryPoint { static void Main() { ComplexNumber num1 = new ComplexNumber( 1, 2 ); ComplexNumber num2 = new ComplexNumber( 1, 2 ); bool result = num1.Equals( num2 ); } }在上述代码中,Main方法里的比较操作变得更加高效,因为值不需要进行装箱操作。编译器会选择最匹配的重载方法,这里就是接受ComplexNumber类型的强类型Equals重载,而不是通用的object类型。
同时,Object.Equals重写方法在检查对象类型并拆箱后,会委托给类型安全的Equals版本。需要注意的是,重写Object.Equals时不能抛出