在我的自我努力中,我將編程技能和習慣帶入了21世紀(從Pascal & Fortran遷移到C#和C++),我一直在研究大量可用的源代碼。就我所能確定的,類是獨特的「獨立」實體(很像它們的函數祖先)。在C#和C++中使用嵌套類 - 爲什麼和何時?
但是,我有很多實例,其中一個或多個類嵌套在另一個類中。在這方面,我的「直覺本能」是這樣做的,僅僅是由於極其糟糕的方法論 - 然而,我還不熟悉現代面向對象方法來真正做出這樣的決定。
因此,下面的重疊問題:
是否有嵌套內另一個類合法的理由?而且,如果是這樣,這樣做的理由是什麼,而不是每個階層完全獨立?
(注:我已經看到了一直在使用C#的例子,但似乎這方面同樣適用於C++)
它們可以用於泛型類,這樣泛型類的每個「版本」都會有與之相關的不同類型(即:'Generic。嵌套'與'Generic 。嵌套'不同。 –
antonijn
2013-03-03 20:17:48
@Antonijn不能解釋它爲什麼嵌套。爲什麼不'通用'和'嵌套'? –
2013-03-03 20:20:58
當然可以有一個合法的理由。這裏是.NET的BCL的一個例子。公共類[AdjustmentRule](http://msdn.microsoft.com/en-us/library/system.timezoneinfo.adjustmentrule)嵌套在公共類[System.TimeZoneInfo](http://msdn.microsoft.com /en-us/library/system.timezoneinfo)。原因是_調整規則_是一種「從屬」_時區信息_。另一個例子是當一個嵌套的'private'類存在於另一個類中時。這可能是因爲內部類只是作爲包含類的一種實現細節而需要。 – 2013-03-03 20:22:02