Supongamos lo siguiente: tenemos la clase B, que es una clase privada anidada dentro de la clase A. No hay ninguna clase heredando de la clase B. La pregunta es: ¿el compilador automáticamente marcará la clase B como Sellada? (no heredable en VB). ¿Hay alguna buena razón para que el compilador no marque la clase B como sellada?¿Las clases privadas se sellan en la compilación?
Mi línea de pensamiento es la siguiente: dado que la clase B está anidada dentro de la clase A y es privada, y no hay otra clase heredando de la clase B, debería ser seguro sellarla, porque no puede heredarse fuera clase A (ni siquiera por subclases de A).
Class A
Private Class B
End Class
End Class
El JIT puede determinar si una clase tiene descendientes pero no creo que lo haga fuera de la presencia del bit sellado en un tipo. No tengo ninguna referencia para respaldarme en esto, pero estoy bastante seguro sobre este punto. – JaredPar
@JaredPar, por lo que sé, muchas máquinas virtuales Java han estado haciendo esto durante mucho tiempo (lo cual es realmente necesario debido al método virtual predeterminado - http://www.ibm.com/developerworks/library/j- jtp12214 /), y estoy bastante seguro de que MS hace tales optimizaciones si se ha visto que ayudan al rendimiento. – Lucero
@Lucero el JIT definitivamente lo hace para las clases explícitamente selladas. Pero solo hay un subconjunto muy pequeño de casos donde puede hacerlo para clases no selladas. No estoy seguro de si esa micro-optimización valdría la pena. Pero como dije, no puedo encontrar ningún documento de una manera u otra. – JaredPar