Dot-Net

為什麼/何時應該在 .net 中使用嵌套類?還是不應該?

  • September 7, 2008

Kathleen Dollard 的 2008 年部落格文章中,她提出了在 .net 中使用嵌套類的有趣理由。然而,她也提到 FxCop 不喜歡嵌套類。我假設編寫 FxCop 規則的人並不愚蠢,所以這個立場背後一定有推理,但我一直找不到。

當您嵌套的類僅對封閉類有用時,請使用嵌套類。例如,嵌套類允許您編寫類似(簡化)的內容:

public class SortedMap {
   private class TreeNode {
       TreeNode left;
       TreeNode right;
   }
}

您可以在一個地方對您的類進行完整的定義,您不必跳過任何 PIMPL 箍來定義您的類的工作方式,並且外部世界不需要看到您的任何實現。

如果 TreeNode 類是外部的,您要麼必須創建所有欄位public,要麼創建一堆get/set方法來使用它。外面的世界會有另一個階級污染他們的智能。

引用自:https://stackoverflow.com/questions/48872