En C #, una función es una forma de empaquetar código que hace algo y luego devuelve el valor. A diferencia de C, C ++ y algunos otros lenguajes, las funciones no existen por sí mismas. Son parte de un orientado a objetos enfoque a la programación.
Un programa para administrar hojas de cálculo puede incluir una función sum () como parte de un objeto, por ejemplo.
En C #, una función puede llamarse función miembro (es miembro de una clase), pero esa terminología se deja de C ++. El nombre habitual para ello es un método.
El método de instancia
Hay dos tipos de métodos: método de instancia y método estático. Esta introducción cubre el método de instancia.
El siguiente ejemplo define una clase simple y la llama Prueba. Este ejemplo es un programa de consola simple, por lo que está permitido. Por lo general, la primera clase definida en el archivo C # debe ser la clase de formulario.
Es posible tener una clase vacía como esta prueba de clase { }Pero no es útil. Aunque parece vacío, como todas las clases de C #, hereda del objeto que lo contiene e incluye un valor predeterminado
constructor en el programa principalvar t = nueva prueba ();
Este código funciona, pero no hará nada cuando se ejecute, excepto crear una instancia t de la clase de prueba vacía. El siguiente código agrega una función, un método que genera la palabra "Hola".
utilizando el sistema;
espacio de nombres funcex1
{
prueba de clase
{
público vacío SayHello ()
{
Consola. WriteLine ("Hola");
}
}
Programa de clase
{
vacío estático Main (string [] args)
{
var t = nueva prueba ();
t. Di hola() ;
Consola. Leer la clave() ;
}
}
}
Este ejemplo de código incluye Consola. Leer la clave(), por lo tanto, cuando se ejecuta, muestra la ventana de la consola y espera una entrada clave como Enter, Space o Return (no las teclas shift, Alt o Ctrl). Sin él, abriría la ventana de la consola, generaría "Hola" y luego cerraría todo en un abrir y cerrar de ojos.
La función Di hola es una función tan simple como puedes tener. Es una función pública, lo que significa que la función es visible desde fuera de la clase.
Si eliminas la palabra público e intenta compilar el código, falla con un error de compilación "funcex1.test. SayHello () 'es inaccesible debido a su nivel de protección. "Si agrega la palabra" privado "donde estaba la palabra public y recompila, obtendrá el mismo error de compilación. Simplemente cámbielo nuevamente a "público".
La palabra vacío en la función significa que la función no devuelve ningún valor.
Característica típica Definición Características
- Nivel de acceso: público, privado y algunos otros.
- Valor de retorno>: void o cualquier tipo, como int
- Nombre del método: SayHello
- Cualquier parámetro de método: ninguno por ahora. Estos se definen entre paréntesis () después del nombre del método
El código para la definición de otra función, MyAge (), es:
public int MyAge ()
{
volver 53;
}
Agregue eso justo después del Di hola() método en el primer ejemplo y agregue estas dos líneas antes Consola. Leer la clave().
var age = t. Mi edad();
Consola. WriteLine ("David tiene {0} años", edad);
Ejecutar el programa ahora genera esto:
Hola
David tiene 53 años,
los var age = t. Mi edad(); La llamada al método devolvió el valor 53. No es la función más útil. Un ejemplo más útil es la función de suma de hoja de cálculo con una matriz de ints, el índice de inicio y el número de valores para sumar.
Esta es la función:
suma flotante pública (valores int [], int startindex, int endindex)
{
var total = 0;
para (var index = startindex; index <= endindex; índice ++)
{
total + = valores [índice];
}
retorno total;
}
Aquí hay tres casos de uso. Este es el código para agregar en Main () y llamar para probar la función Sum.
valores var = nuevo int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Consola. WriteLine (t. Suma (valores, 0,2)); // debe ser 6
Consola. WriteLine (t. Suma (valores, 0,9)); // debe ser 55
Consola. WriteLine (t. Suma (valores, 9,9)); // debería ser 10 ya que el noveno valor es 10
El para lazo suma los valores en el rango startindex a endindex, por lo que para startindex = 0 y endindex = 2, esta es la suma de 1 + 2 + 3 = 6. Mientras que para 9,9, solo agrega los valores uno [9] = 10.
Dentro de la función, el total de la variable local se inicializa a 0 y luego se agregan las partes relevantes de los valores de la matriz.