Pregunta sencilla

Iniciado por Rekcah, 22 Septiembre 2018, 09:07 AM

0 Miembros y 1 Visitante están viendo este tema.

Rekcah

Hola amigos,

Estoy programando en c# y estoy haciendo un programa de cifrado lo que quiero saber es como puedo ejecutar un pedazo del código para ver si me esta ejecutando lo que quiero.

lo e intentado pero me sale el form ejecutandoce y lo que quiero es que no ejecute todo el programa en si ,si no un pedazo un alinea como por ejemplo si una variable esta agarrando un valor y que me lo diga por consola así como se puede hacer en netbeans vengo de java soy nuevo porfa si me pueden ayudar

Saludos

OmarHack

Simplemente comenta todo lo que quieras que se ignore.
Para comentar abres /* y cierras */
static void Main(string[] args)
     {
/* Todo lo qu
e esté dentro de aquí

Va a ser ignorado*/
Esto no va a ser ignorado
/* Esto sí*/ pero esto no.

//Esto si. Y esto también
Esto no.
//esto sí
//esto sí
//esto sí


     }

Mete entre /* */ lo que quieras que no sea ejecutado o pon // al inicio de cada línea.
I like to test things.

Rekcah

hola amigo gracias por la respuesta pero trate de hacer lo que me dices y me sale esto
https://ibb.co/jRvEmp

y si le quito lo de la console.readkey();  me dice esto
https://ibb.co/iqX8e9

no se si es porque comencé el proyecto como form para windows o algo estoy haciendo mal

también selecciono el código y doy iniciar y nada sale lo mismo

el código de atrás solo es una prueba con una variable a ver si me lo ejecuta en una consola que es lo que quiero

Serapis

El método que te describe OmarHack , es un método pobre... a veces es suficiente, pero no es lo más adecuado...

En Visual Studio, desde la mismísima versión 1 (antes incluso de visual Studio, procedente de Mocosoft), siempre ha estado ahí, el menú 'Debug' (Depurar)... con muchísimas opciónes... por ejemplo:
- Correr el programa y al llegar a una línea pararse... (tecla F9 sobre la línea que quieras que pare, otra vez para eliminar el punto de interrupción en dicha línea).
- Ejecución hasta que una variable cumpla x condición,
- Ejecución paso a paso (se ejecuta una instrucción cada vez que pulsas la tecla enter). Agregar inspección. por ejemplo si tienes una variable x, puedes poner X = 20 y la condición puede ser 'deternse cuando cumpla el valor... si x por ejemplo es el contador d eun bucle al llegar a la vigésima ejecución, cuando tenga el valor 20, se detendrá ahí a la espera de que revises o sigas pulsando F5 ó F11, etc....
- Ejecución por procedimientos (ejecuta todo un procedimiento y se detiene a la salida, similar a la anterior, pero no desea revisar cada instrucción de la función si no evaluar si la función devuelve correctamente dados unos valores de entrada.
- Inspección de variables, al instante e incluso añadirlas a una vista (pinchas en la variable, o la seleccionas, y con el otro botón abres el menú emergente y ahí tienes muchas opciones... incluso te puede llevar a la parte del código donde se ha definido la variable).

...etc, etc, etc... esto viene de los 80, y es algo con lo que todo programador debe tratar y conocer al detalle, para verificar que su programa funciona correctamente y cuando no, ver qué pasa, dónde y porqué... por algo el menú se llama DEPURAR, leches...

Adjunto algunas imágenes, que son por sí mismas ilustrativas...
El menú 'Debug' cuando el proyecto está en modo edición.


El mismo menú debug, cuando el proyecto está en modo 'debug' (ejecución). Es modo debug, siempre que se esté ejecutando y no esté compilado el código...


Cuando seleccionas o dejas el cursor sobre una variable un instante adecuado, emerge su valor y si es un 'objeto complejo', el acceso a todos los detalles dle objeto:


Ídem, que anterior, pero usando el 'otro botón del ratón', sobre el campo deseado para hacer emerger su popupmenú:


Pulsa F5 o F11 para entrar en ejecución en modo debug... tal como se aprecia en las imágenes.

OmarHack

El problema que tienes que es que no estás en consola. Ve al nombre del proyecto, click derecho y propiedades. Ahí puedes elegir la consola como output.
I like to test things.

mauriciodelos

Hola!

lo que yo hago cuando quiero aislar una parte pequeña del código sin usar el debugger, es crear un nuevo "proyecto" test solamente con esa parte del código que necesito.

Saludos
Mauricio.

Enviado desde mi ALE-L23 mediante Tapatalk
El fanatismo es la máxima estupidez humana.

Rekcah

#6
Hola amigos,

Mucha gracias por sus respuestas en verdad me ayudo mucho tanto la información de depurar que dijo NEBIRE  y también como el activar el comando en propiedades como dijo OmarHack .

Realmente me di cuenta que al depurar  con el método "Alternar punto de interrupción" es muy sencillo ver como se ejecuta todo tu código linea por linea y era lo que necesitaba ya que buscaba la forma de como una variable se comporta con el método de cifrado y descifrado pero no veía la forma, por que apenas ejecutaba se iniciaba el form y no una linea de comando para saber cuando llega mi variable a preguntar por la encriptacion así que también lo active en propiedades

Así que muchas gracias aquí les adjunto una imagen de ejemplo de como me ayudaron https://ibb.co/eSRenU

Saludos,

OmarHack

Me acuerdo mi primer programa grande fuera de cifrados también pero en C++ Con el tiempo que se tardaba en darle la vuelta parecía un hash hahaha.
I like to test things.

Eleкtro

Aparte del uso básico de las funcionalidades de depuración que proporciona Visual Studio, lo cual ya ha explicado el compañero @NEBIRE, dependiendo del caso te podría resultar óptimo considerar la implementación de un test de unidades de código o "prueba unitaria"...



Cita de: docs.microsoft.comSe llaman pruebas unitarias porque descomponen las funciones del programa en comportamientos comprobables discretos que se pueden probar como unidades individuales.
Cita de: docs.microsoft.comLas pruebas unitarias tienen el mayor efecto en la calidad del código cuando son parte integral del flujo de trabajo de desarrollo de software. En cuanto escriba una función u otro bloque de código de aplicación, cree pruebas unitarias que comprueben el comportamiento del código en respuesta a casos estándar, límite e incorrectos de datos de entrada, así como cualquier suposición explícita o implícita creada por el código.


Esta práctica no es estrictamente necesaria, ni mucho menos, pero aporta grandes beneficios para proyectos que están sujetos a modificaciones de forma periódica, siendo de vital ayuda en la manutención del código fuente original despues de haber pasado por modificaciones o refactorizaciones (ahorra muchísimo tiempo de depuración), y es por ello que cualquier proyecto profesional que se precie, siempre, y digo siempre incluye un sofisticado test de unidades de código.

La implementación de este tipo de test ofrece bastante versatilidad en la búsqueda de bugs al poder verificar un resultado/valor de función mediante una verificación o una aserción, y notificar/responder a ello de una forma específica, pero un test no se tiene por que limitar a ese tipo de comprobaciones, aquí tienes algunas ideas para tests genéricos aplicables a (casi)cualquier tipo de proyecto...


Un saludo.








Serapis

Claro que sí, Elektro, lo que pasa es que como el usuario Rekcah, señala que es novato en VS, no quise apabullarle con mucha más info porque iba a tardar más en digerirlo que en aplicarlo...

Cuando avance es de esperar que aprenda a depurar procesos complejos o liosos con pruebas unitarias...

En NET también está  (aunque la verdad es que hace ya algún tiempo largo largo que no lo reviso), una implementación de los contratos por diseño muy útiles para asegurarse que se cumplen las 'reglas' por ambas partes (proveedor y cliente), llamada "Design by Contract Framework", el manespace me parece recordar que era DesignByContract. Si Rekcah ha/hubiera trabajado en Java con Jass tal vez podría resultarle familiar DesignByContract.