Foros del Web » Programación para mayores de 30 ;) » .NET »

Funciones en c#

Estas en el tema de Funciones en c# en el foro de .NET en Foros del Web. En una programacion orientada a objetos donde quedan las funciones? Quiero decir, yo tengo un formulario (form1) con un monton de cheackboxes y un archivo ...
  #1 (permalink)  
Antiguo 07/12/2008, 12:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Funciones en c#

En una programacion orientada a objetos donde quedan las funciones?

Quiero decir, yo tengo un formulario (form1) con un monton de cheackboxes y un archivo .cs donde se manejan todos los eventos que quiero controlar.

Sin embargo, luego dispongo de 3 funciones que se ejecutan dependiendo de los eventos que surgan. Digamos que tengo 12 checkboxes y 3 funciones, que se ejecutaran cada una para 4 checkboxes.

Evento (click) 1, 2, 3, 4 ejecuta la funcion 1 mandando informacion de esos 4 checkboxes. cada vez que se cambia el estado de un checkbox cambia el resultado y por eso ahi que calcularlo cada vez.
Evento 5, 6, 7, 8 ejecuta la funcion 2 mandando informacion de esos 4 checkboxes
y los eventos 9, 10, 11 y 12 ejecutan la tercera funcion

Estas funcione donde las escribis? Generais una nueva clase "Funciones" por ejemplo, donde incluis 3 metodos (funcion1, funcion2, funcion3)? todo ello metido en un mismo archivo .cs, que tambien se puede llamar funciones?

saludos
  #2 (permalink)  
Antiguo 07/12/2008, 16:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Funciones en c#

Las puedes poner donde quieras, si estas trabajando en un proyecto pequeño las puedes poner en "Program.cs", asi si jubilas tu formulario podras borrar y solo tendras que volver a hacer referencia a esas funciones desde el nuevo formulario.

Si el proyecto ya es mas grande talvez te interese agrupar las funciones en diversos modulos, pero no tienes la necesidad de crear clases nuevas.
  #3 (permalink)  
Antiguo 07/12/2008, 16:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Funciones en c#

El proyecto es mas bien pequeño asi que las pondre entonces en "program.cs"

Ahora me surge otra duda, si funcion1 llama a funcion2... en que orden ahi que ponerlas en program.cs? la mas "baja" digamos la primera? o es indiferente?

Main
Funcion 2
Funcion 1

Y aprovechando, si desde funcion2 (que era llamada por la 1), quiero modificar el atributo text de un label del formulario, como lo haria? hasta ahora lo que hago es devolver a la funcion1 y luego al form.cs la respuesta de la funcion2 y desde alli ya lo modifico. Pero como podria hacerlo desde funcion2 directamente?

Saludos y gracias por la respuesta
  #4 (permalink)  
Antiguo 07/12/2008, 16:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Funciones en c#

Es indiferente en cuanto a eficacia del programa, pero por legibilidad yo pongo las funciones por orden de creacion (no me interesa leer una funcion que aun no se ni cuando ni para que se usa).

Provablemente creaste el formulario dese Program, pues si guardaste el form en una variable global solo tienes que hacer form.label.text = "nuevo texto";. Otra opcion es pasarle los parametros por ref o out a la funcion 1, y esta a la 2.

Te pongo los enlaces a ref y out en "codigo" porque me falta antiguedad ;)
Código:
http://msdn.microsoft.com/es-es/library/14akc2c7(VS.80).aspx
http://msdn.microsoft.com/es-es/library/t3c3bfhx(VS.80).aspx
  #5 (permalink)  
Antiguo 07/12/2008, 17:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Funciones en c#

claro, que si coloco las funciones 1 y 2 en el form.cs, asi que puedo acceder directamente al label.

Claro que el codigo del form.cs me puede quedar muy largo

Saludos y gracias de nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:38.