Eliminar referencia a botones c#?

Iniciado por crack81, 8 Marzo 2015, 22:41 PM

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

crack81

No se si la pregunta esta de lo mejor planteada haber si algun moderador la checa si cree que es mejor alguna otra entonces que la cambie.

Bueno tengo una curiosidad cuando agrego un boton a un form en c#
y escribo codigo en el evento  click de el todo va bien pero si en algun momento ya no me gusto ese preciso boton ni todo su contenido cuando lo elimino
el componente visual, todo el codigo del evento se matiene.

Esto me parece algo ironico porque he probado otros lenguajes como Delphi o java y esto no pasa, tu eliminas algo visual y todo lo que estaba dentro de sus eventos tambien se elimina.

Haber si alguien me explica si esto es cosa del IDE o soy yo el que esta haciendo algo mal
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

DarK_FirefoX

Primero: ¿Que IDE utilizas?

Voy a asumir que es Visual Studio.

Cuando creas un Form sabes que detrás de eso, además del "NombreDelForm.cs" existe tambien el "NombreDelForm.Designer.cs". En este archivo se autogenera código para el formulario y los componentes que se añaden a el. Al tu añadir un botón en tu form desde el ToolBox, aquí se genera código que contiene información de este botón, como la Position, Size, etc. Ahora, al tu "añadir" código al evento OnClick de este botón, en este archivo tambien se le asigna un método al evento Click del botón a través de un System.EventHandler, esté método es autogenerado por el IDE (Visual Studio en este caso) para que tu solo añadas tu código. Si tu en un momento eliminas este botón de la vista de diseño del formulario entonces en el archivo "NombreDelForm.Designer.cs" se eliminará toda la información referente a este botón tambien. Pero en tu "NombreDelForm.cs" se queda el método que se autogeneró como si fuera un método normal. Si lo quieres eliminar lo eliminas.

Espero que te haya sido de ayuda mi explicación!

Salu2s

crack81

Si entiendo tu explicacion y si me fije que se quita la instancia del boton pero
bueno a mi personalmente me molesta que el codigo del metodo se siga manteniendo dentro del proyecto

Como especifique arriba tanto Delphi como java los auto elimina asi que no tienes que estar como loco viendo si ese metodo tiene o no instancia

Si C/C++ es el padre de los lenguajes entonces ASM es dios.

DarK_FirefoX

Te entiendo, pero no es que sea una instancia! Es simplemente un método declarado. Porque por ejemplo, ese mismo método tu lo puedes estar utilizando desde otro lugar (otro botón, un menú, etc) que realizes la misma acción que ese botón. Si se eliminará entonces te dejaria de funcionar la llamada a ese método desde otro lado.

Salu2s

crack81

Es claro aun que personalmente que no es lo mas ideal hacer esto
porque si uno no pone cuidado pude ser que se valla quedando codigo basura que al rato cuesta entender

Lo que queda es acostumbrarse a como trabaja este IDE

Saludos...
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

DarK_FirefoX

Si, de cierta manera tienes razón, hay que tener cuidado con eso, pero de igual manera Visual Studio te facilita saber si este método no es llamado desde otro lugar, solo le das click derecho sobre la signatura del método y buscas la opción "Buscar Todas las referencias" (Find all references)

Salu2s

crack81

Si me di cuenta pero es curioso que un herramienta como visual estudio
la cual es "super profesional" se les escapen estos detalles
todavia lo entederia de ides open source que no poseen alto financiamiento pero de microsoft?

Bueno aun asi no me quita las ganas de probar este lenguaje que se me hace muy ameno
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

DarK_FirefoX

Ok! Si tienes alguna otra inquietud o duda, no dudes en hacerlo saber!

Salu2s ;)

Eleкtro

#8
Cita de: crack81 en  9 Marzo 2015, 16:18 PM
Si entiendo tu explicacion y si me fije que se quita la instancia del boton pero
bueno a mi personalmente me molesta que el codigo del metodo se siga manteniendo dentro del proyecto

Como especifique arriba tanto Delphi como java los auto elimina asi que no tienes que estar como loco viendo si ese metodo tiene o no instancia

¿Que tiene que ver que Delphi o Java los auto-destruyan?, en mi opinión las IDEs a las que te refieras de ambos lenguajes tienen un grave fallo de diseño entonces.

El código que pueda existir dentro de un event-handler puede ser rehusable, lo puedes utilizar para otros fines, para suscribirte a otro evento por ejemplo, a mi no me gustaría para nada que se auto-eliminase ese bloque de código sin que yo lo haya decidido, por no decir que un mismo método puede estar suscrito a múltiples eventos de diferentes controles al mismo tiempo, ¿que ocurriría si se eliminase dicho método por desasociar un solo evento de los varios que puede haber?, no, eso no estaría bien, el mecanismo de la IDE de VS deja a elección del usuario la eliminación de ese bloque de código, porque VS tiene en cuenta esos pequeños detalles que, a mi modo de ver, las IDEs de los lenguajes que mencionas no actuan de forma correcta.

De todas formas habría que preguntarle a Microsoft las razones por las cuales no se auto-eliminan, quizás existan otro tipo de razones que sean menos obvias y que estén relacionadas con la prevención de "X" conflictos con el código si sucediese dicha auto-eliminación, a parte de satisfacer la experiencia de uso al permitir la elección de "eliminación libre".

Cita de: crack81 en 10 Marzo 2015, 04:43 AMSi me di cuenta pero es curioso que un herramienta como visual estudio la cual es "super profesional" se les escapen estos detalles

Yo desde luego no encuentro ningún beneficio en que se auto-eliminase ese código y creo que estás viendo el problema al revés, yo veo el problema en las otras IDEs a las que te refieras, por que desde luego no me parece bien que auto-eliminen esa parte del código, pero esto solo es mi opinión, y para gustos, los colores.

Saludos!








crack81

Eleкtro aciertas en decir "para gustos, los colores."
yo jamas he dicho que el IDE de microsoft este mal solo que no lo comparto, hago una comparacion de dos herramientas(en especial Delphi) que en primer lugar tiene mas años y desarrollo que el IDE de c#


Citar¿Que tiene que ver que Delphi o Java los auto-destruyan?, en mi opinión las IDEs a las que te refieras de ambos lenguajes tienen un grave fallo de diseño entonces.

como digo caemos en gustos, pero ya tambien te responderia que herramientas como Delphi que llevan 25 años en el mercado y aun se matienen no pueden estar del todo equivcados

es solo una opinion aqui la gente decide que es lo que le gusta mas y eso es todo.
Si C/C++ es el padre de los lenguajes entonces ASM es dios.