Hay una cosa que no entiendo, Entorno, ¿sirve para algo? ( Entorno _Entorno = new Entorno(); _Entorno._entorno()
Aparte, no creo que afecte mucho al programa eso, pero esto tampoco lo entiendo
Datos obj = new Datos(); (dentro de datos)
El objeto ya lo declaraste en main, ¿para que otro objeto?
Esto otro tampoco lo entiendo:
byte _top = 2,hasElMom = 1; ¿byte? Se desaconseja totalmente, en C# o usas un int o si es real un float/double. Todo lo demás es peor en todo, rendimiento, optimizar código, legibilidad, requerirá un cast implicito tarde o temprano
Vamos, tú código es una locura, no es claro y no hace cosas lógicas. Es el primer código tuyo que veo, pero no creo que me equivoque mucho si digo que no eres programador .net de hace tiempo, sino que vienes de otro lenguaje y te estás adaptando. ¿C?
Deberías mirarte algo de programación a objetos, creo que no terminas de entender el concepto y la filosofía de la misma y aparte, mejorar tú código, hay errores que hoy día no son aceptables, un while(true) con break dentro es uno de ellos, o forzar en el bucle for el 10 porque sí en vez de usar numeros.size() es otra de las cosas que dan buena impresión
Y ya lo de el constructor ejecute el programa no lo comento, un constructor es para inicializar los datos, no para ejecutar el programa. Aparte, los métodos/funciones se usan ahora de forma que cada uno de ellos haga solo una cosa, es decir, necesitarías uno para limpiar de la consola la parte que quieres, otro para ordenar y otro para imprimir el array ordenado
P.D el uso del índice si es correcto pero al tratarse de un array es innecesario