Dot-Net
為什麼/何時應該在 .net 中使用嵌套類?還是不應該?
在Kathleen Dollard 的 2008 年部落格文章中,她提出了在 .net 中使用嵌套類的有趣理由。然而,她也提到 FxCop 不喜歡嵌套類。我假設編寫 FxCop 規則的人並不愚蠢,所以這個立場背後一定有推理,但我一直找不到。
當您嵌套的類僅對封閉類有用時,請使用嵌套類。例如,嵌套類允許您編寫類似(簡化)的內容:
public class SortedMap { private class TreeNode { TreeNode left; TreeNode right; } }您可以在一個地方對您的類進行完整的定義,您不必跳過任何 PIMPL 箍來定義您的類的工作方式,並且外部世界不需要看到您的任何實現。
如果 TreeNode 類是外部的,您要麼必須創建所有欄位
public,要麼創建一堆get/set方法來使用它。外面的世界會有另一個階級污染他們的智能。