Here's una explicación de la regla que estoy tratando de comprender. Aquí está el código simplificado que el analizador de código se quejaba:CA1034: Los tipos anidados no deberían estar visibles
Public Class CustomerSpeed
Public Enum ProfitTypeEnum As Integer
NotSpecified = 0
FlatAmount = 1
PercentOfProfit = 2
End Enum
Private _ProfitTypeEnum As ProfitTypeEnum
Public Sub New(ByVal profitType As ProfitTypeEnum)
_ProfitTypeEnum = profitType
End Sub
End Class
Si la enumeración se refiere sólo a la clase, ¿por qué es una mala cosa para que sea un tipo de contenido dentro de la clase? Parece más ordenado para mí ...
¿Alguien sabe lo que se quiere decir con la siguiente línea ?:
tipos anidados incluyen la noción de accesibilidad miembros, que algunos programadores no entienden claramente
Uso Los espacios de nombres para agrupar la clase y Enum no parecen una forma útil de resolver esta advertencia, ya que me gustaría que tanto la enumeración pertenezcan al mismo nivel padre como el nombre de la clase.
Como sabes si lees lo suficiente de lo que escribí, no compre el argumento de capacidad de descubrimiento o usabilidad, porque con Intellisense trabajando como lo hace en VS2005 en lugar de 2010, no pensé que ninguno de los dos fuera un problema.Pero su nuevo pt, estoy absolutamente de acuerdo. Lo consideré brevemente por mi cuenta, pero perdí mi enfoque, ya que no fue mencionado por nadie. Debo admitir que no tengo una defensa para esa discusión y no espero tener una más tarde, así que ... estoy convencido solo sobre esta base. Eso me parece una razón suficiente para no incrustar enumeraciones en las clases. ¡Gracias! – ChadD