1. 概述
本章内容包括 访问控制符、属性 和 显式接口实现。
2. 主要内容
2.1 访问控制符
封装的核心是隐藏信息。访问控制符用来实现类型成员的访问控制。
C#的访问控制符有:public, internal, protected, protected internal (or的关系), private.
使用 InternalsVisibleToAttribute, 可以设置开放给其他程序集使用。
[assembly:InternalsVisibleTo("Friend1a")]
[assembly:InternalsVisibleTo("Friend1b")]
2.2 使用属性
如果需要公开数据的话,永远用属性,字段永远设置成私有的。
2.3 显式接口实现
显式接口实现,只能用接口对象调用。可用于隐藏类成员。
显式接口实现,还可以用于处理实现了不同接口相同方法签名的情况。
interface ILeft
{
void Move();
}
interface IRight
{
void Move();
}
class MoveableObject : ILeft, IRight
{
void ILeft.Move() {}
void IRight.Move() {}
}
3. 总结
① 封装 是面向对象的重要思想,用于隐藏内部细节,提高类的可用性。
② 可以用属性来封装数据。
③ 属性可以使用get和set访问器,可以添加额外的逻辑验证代码。
④ 显示接口实现,可用于隐藏信息或者实现多个接口的同名方法。