Programación, C#, C Sharp, Visual Basic, .net, Análisis y diseño de sistemas.

Cierra esta ventana si quieres conectarte como invitado. Registrarte sí quieres opinar y ver todos los enlaces al curso..
Programación, C#, C Sharp, Visual Basic, .net, Análisis y diseño de sistemas.

Foro de intercambiar de ideas con interesados en el tema.

Últimos temas

» Ayuda con este programa
4/7/2013, 12:32 am por hcovenas

» Pasar datos de dos arraylist a otro arraylist
10/7/2012, 8:35 pm por hcovenas

» Aprende todo sobre C++
24/4/2012, 9:28 pm por hcovenas

» Instalación de Linux en Windows VM
20/4/2012, 7:46 pm por hcovenas

» 5) Transacciones
15/4/2012, 8:21 pm por hcovenas

» 4) Primer examen de Unidad
9/4/2012, 3:04 pm por hcovenas

» 3) DataReader
2/4/2012, 2:38 pm por hcovenas

» Oledbcommand
26/3/2012, 12:28 pm por hcovenas

» 2) El Objeto Comando
22/3/2012, 3:23 pm por hcovenas

Conectarse

Recuperar mi contraseña

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado :: 1 Motor de búsqueda

Ninguno


[ Ver toda la lista ]


La mayor cantidad de usuarios en línea fue 11 el 6/6/2014, 12:16 am.


    metodos estáticos

    Comparte
    avatar
    hcovenas
    Admin

    Mensajes : 227
    Fecha de inscripción : 29/10/2010
    Edad : 28
    Localización : Chimbote

    metodos estáticos

    Mensaje por hcovenas el 29/8/2011, 7:47 pm

    Métodos estáticos

    Cuando marcas una función como estática no hace falta que instancies su clase para acceder a ella . Bueno, ahora en serio, vamos con los ejemplo


    claseOperaciones.cs

    public class claseOperaciones
    {
    public int Suma1(int x, int y)
    {
    return x + y;
    }

    public static int Suma2(int x, int y)
    {
    return x + y;
    }
    }

    Ambas funciones de claseOperaciones hacen exactamente lo mismo, sin embargo, uno es estática y la otra no. Veamos como usamos cada una de ellas:

    ejemplo de Uso
    int x = 2, y = 5;

    // Ejemplo de uso de la función NO estática
    claseOperaciones opera = new claseOperaciones();
    int total1 = opera.Suma1(x, y);


    // Ejemplo de uso de la función estática
    int total2 = claseOperaciones.Suma(x, y);


    Ahora cobra sentido la frase en que se decía que para usar una función no estática hay que instanciar primero la clase

    claseOperaciones opera = new claseOperaciones();

    para poder usar la función

    int total1 = opera.Suma1(x, y);

    mientras que para usar la función estática basta con:

    int total2 = claseOperaciones.Suma(x, y);

    donde la clase no se instancia.

    ¿Cuando usar funciones estáticas y en qué caso? Pues depende mucho de la funcionalidad que se le vaya a dar. Por ejemplo, en el caso de la suma de la que estamos hablando, yo utilizaría funciones estáticas, pues no me aporta nada inicializar la clase. Simplemente quiero usar una función que está almacenada en la claseOperaciones.

    Un caso en que no utilizaría funciones estáticas sería en la típica clase "person" que tanto les gusta dar como ejemplo a los americanos en la que se calcula la edad de esa persona, su sueldo, se devuelve el nombre y apellidos juntos y muchas otras cosas:


    class Person
    {
    private string myName ="N/A";
    private int myAge = 0;

    public string Name
    {
    get
    {
    return myName;
    }
    set
    {
    myName = value;
    }
    }

    public int Age
    {
    get
    {
    return myAge;
    }
    set
    {
    myAge = value;
    }
    }

    public string NombreYEdad()
    {
    return "Name = " + Name + ", Age = " + Age;
    }

    public Person()
    { }

    public Person(string Nombre, int Edad)
    {
    this.Name = Nombre;
    this.Edad = Edad;
    }

    Como vemos, se instancia la clase con un nombre y una edad para la persona, y después utilizamos esos datos para recoger una frase con el nombre y la edad. Ahora ya no es un simple contenedor de funciones, sino que se interactúa con propiedaes que hemos inicializado, de modo que no ha lugar una función estática.

    http://prograweb.com.mx/poo/01Clases_metodos.html

    http://13mandamientos.com/index.php?option=com_content&view=article&id=18:5-curso-descubriendo-lenguaje-c-programacion-orientada-a-objetos-ii&catid=5:descubriendo-lenguaje-c&Itemid=8

      Fecha y hora actual: 16/7/2018, 11:41 pm