为什么我需要使用C#嵌套类我试图了解C#中的嵌套类。我知道嵌套类是在另一个类中定义的类,我没有得到的是为什么我需要这样做。
4 回答
BlueColor
TA贡献1条经验 获得超1个赞
嵌套类型,一般只针对父类的特殊功能实现,比如 C# 实现的迭代器模式,有了Enumerator 你的Foreach 循环才可以实现;
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
{
...
[Serializable]
public struct Enumerator : IEnumerator<T>, IDisposable, IEnumerator
{
}
}
弑天下
TA贡献1818条经验 获得超8个赞
我特别喜欢的模式是将嵌套类与工厂模式结合起来:
public abstract class BankAccount{ private BankAccount() {} // prevent third-party subclassing. private sealed class SavingsAccount : BankAccount { ... } private sealed class ChequingAccount : BankAccount { ... } public static BankAccount MakeSavingAccount() { ... } public static BankAccount MakeChequingAccount() { ... }}
通过嵌套这样的类,我让第三方无法创建自己的子类。我完全控制在任何bankaccount对象中运行的所有代码。我的所有子类都可以通过基类共享实现细节。
慕标琳琳
TA贡献1830条经验 获得超9个赞
也许这是何时使用嵌套类的一个很好的例子?
// ORIGINAL class ImageCacheSettings { }class ImageCacheEntry { }class ImageCache{ ImageCacheSettings mSettings; List<ImageCacheEntry> mEntries;}
和:
// REFACTOREDclass ImageCache{ Settings mSettings; List<Entry> mEntries; class Settings {} class Entry {}}
PS:我没有考虑应该应用哪些访问修饰符(私有,受保护,公共,内部)
- 4 回答
- 0 关注
- 836 浏览
添加回答
举报
0/150
提交
取消