C# 类成员:属性、事件、索引器与运算符详解
1. 控制台属性延迟初始化
控制台类有三个属性: In
、 Out
和 Error
,分别代表标准输入、输出和错误设备。通过将这些成员作为属性公开,控制台类可以将它们的初始化延迟到实际使用时。例如,首次引用 Out
属性时:
Console.Out.WriteLine("Hello world");
会创建输出设备的基础 TextWriter
。但如果应用程序未引用 In
和 Error
属性,则不会为这些设备创建对象。
2. 虚拟、重写和抽象访问器
2.1 访问器修饰符规则
若属性不是静态的,属性声明可以在其一个或两个访问器上包含 virtual
或 abstract
修饰符,且每个访问器的修饰符不必相同。例如,属性可以有非虚拟的 get
访问器和虚拟的 set
访问器。
2.2 重写属性声明规则
派生类中可以通过在访问器上指定 override
指令来重写继承属性的虚拟访问器,这称为重写属性声明。重写属性声明不会声明新属性,只是专门化现有属性虚拟访问器的实现。规则如下:
- 重写