c# - qué - que es una clase en programacion
¿En qué lenguajes.NET puede una clase derivar de su propia clase anidada? (2)
En C #, al intentar compilar el siguiente código aparece un error, "Dependencia de clase base circular que involucra ''A'' y ''A.B''
public class A : A.B
{
public class B { }
}
Sin embargo, estoy viendo una DLL de terceros a través de un descompilador y viendo esta estructura. ¿Cómo es esto posible? Solo puedo asumir que la DLL de terceros se escribió en otro lenguaje .Net, pero ¿qué idioma y cuál fue la sintaxis?
Ningún lenguaje DotNet puede hacerlo. Derivar una clase secundaria indirectamente de sí mismo es incorrecto y puede crear una dependencia circular. Piense desde la perspectiva del compilador, cuando trata de compilar la clase A, primero debe compilar la clase B, que depende de nuevo de la clase A y así sucesivamente. Así que crea un bucle para siempre mientras se compila.
Se debe a que la dll que está intentando descompilar está "ofuscada". el ofuscador cambia todo el nombre de las clases para que no se puedan descompilar los descompiladores.