Ha llegado el momento de aprender a crear tus propios métodos para tus programas en C#. Una vez que domines esta habilidad no querrás dejarla por lo poderosa que puede ser.
Creando nuestro método
Lo primero que debemos hacer es iniciar un nuevo proyecto con nuestra clase base tal cual lo hemos hecho hasta ahora. Nombra tu proyecto MyMethods y tendrás un código como este:
using System;publicclassMyMethods{publicstaticvoidMain(){Console.WriteLine("Hello World");}}
Arriba del método Main() crea tu primer método siguiendo una estructura similar de la siguiente manera:
publicvoidIntegerAddition(int a, int b){ int Addition= a + b;Console.WriteLine("El resultado es "+Addition);}
Este método tiene el objetivo de sumar dos números enteros. Para ello dentro de los paréntesis se incluyeron dos parámetros que son los dos números a sumar.
Dentro del cuerpo o bloque del método hay dos instrucciones. La primera int Addition = a + b; es donde se realiza la operación de suma, asignándose a una variable del mismo tipo, y en la siguiente imprimimos ese resultado.
Accediendo al método
Para utilizar nuestro método debemos llamarlo y lo haremos desde nuestro método Main().
publicstaticvoidMain(){// Aquí llamaremos al método}
Es necesario generar una referencia creando una instancia de nuestra clase donde se ejecuta el programa. Para ello escribe:
MyMethodsMyProgram=newMyMethods();
Donde MyMethods es la clase del programa y MyProgram el nombre que se le da a la instancia que se crea y que se usará como referencia para ejecutar el método las veces que sea necesario como se ve a continuación:
MyProgram.IntegerAddition(3,6);
Esta línea probablemente te parece más parecida a lo que has visto con los métodos que hemos utilizado antes. Lo que hace es llamar a la instancia MyProgram y a su método IntegerAddition() que es el que creamos. Dentro de sus paréntesis se ponen los argumentos que necesitan los parámetros int a e int b que se le asignaron.
Algo que quizá no notaste es que el método anterior tenía una palabra clave “void”, lo que significa que no retorna algún valor. Es por ello que dentro del mismo método se imprimió el resultado.
Para generar métodos de los que podamos obtener valores conocerás la palabra clave return y al momento de crear un método se le pondrá el tipo de dato que retornará en lugar de void:
public int IntegerMultiplication(int a, int b){ int Multiplication= a * b;returnMultiplication;}
Este es un método muy similar al anterior con la diferencia de que tiene un valor int a ser retornado.
Al final de todo el contenido del método se encuentra la instrucción return Multiplication; que indica, con la palabra clave return que regresará el valor que hay dentro de esa variable al punto donde se llame el método desde Main().
publicstaticvoidMain(){ int result =MyProgram.IntegerMultiplication(12,2);Console.WriteLine("El resultado de la multiplicación es "+ result);}
En este caso, como el método regresa un valor, es necesario almacenarlo en una variable. Al imprimir ese resultado se verá cómo el método funciona correctamente ejecutando la multiplicación.
using System;publicclassMyMethods{publicvoidIntegerAddition(int a, int b){ int Addition= a + b;Console.WriteLine("El resultado es "+Addition);}public int IntegerMultiplication(int a, int b){ int Multiplication= a * b;returnMultiplication;}publicstaticvoidMain(){MyMethodsMyProgram=newMyMethods();MyProgram.IntegerAddition(3,6); int result =MyProgram.IntegerMultiplication(12,2);Console.WriteLine("El resultado de la multiplicación es "+ result);}}
Ahora conoces cómo crear y utilizar tus propios métodos. Como reto de esta clase crea un método que ejecute la división de dos números. Como tip toma en cuenta que la mayoría de las divisiones no dan resultados enteros, por lo que necesitarás definir tu método y variables con otro tipo de dato.
Comparte tu resultado en el sistema de comentarios. ¡Nos vemos en la próxima clase!
Creación de Métodos en C# para Operaciones Matemáticas
No se, pero creo que esto mas que un solo texto debio ser una clase en video, no es que sea taaan complicado pero, pues si por eso pago, es lo minimo que esperaria, si no mejor busco las cosas en internet y hasta con mas detalle
Es exactamente de la misma manera, solamente toca escribir el método Main como en las anteriores versiones de dotnet.
Aquí te dejo la información de referencia donde explica los cambios en los templates de los proyectos, y como puedes seguir utilizando el older style :)
Es porque MyMethods es el nombre de tu namespace, sin embargo, fíjate que en la lectura "MyMethods" debe ser el nombre de la clase y no del namespace, no puedes instanciar namespaces. Solamente puedes instanciar clases, es por ello que te da el error.
Buenas a todos, alguien sería tan amable de explicarme la diferencia entre el método IntegerAddition e IntegerMultiplication?
Explica que el método IntegerMultiplication devuelve un valor y por ello hay que escribir Public int en IntegerMultiplication, en vez de Public VOID IntegerMultiplication; tal y como está escrito el otro método (Public VOID IntegerAddition).
Lo que no entiendo es porque dice que con la suma no retorna ningún valor, y con la multiplicación sí. Cuando dice retorna valor ¿no se refiere a que la consola te da un resultado, y ese resultado es un valor retornado?
Os dejo la imagen del código, por si os ayuda a entender mi duda que a mí parecer es tan liosa. MIL GRACIAS! Saludos!
Existen dos formas de crear funciones,
Una donde se realiza un procedimiento dentro de la función, pero esta no retornara ningún valor, esto quiere decir que lo que se hace en esa función no se puede guardar en una variable.
cuando tu utilizas una función con retorno, se realiza un procedimiento dentro de la función y al final tu puedes retornar algún tipo de dato y almacenarlo en una nueva variable, con eso podrás usar ese dato muchas veces durante el código.
Espero que haya quedado mas claro.
El retorno no tiene que ver con lo que se muestra en pantalla.
Para eso se utiliza la función Console.WriteLine(");
la cual nos mostrara lo que sea que escribamos dentro de los parentesis.
Por lo que entiendo, el hecho de que el método que utiliza es "Void" (lo cual significa vacío), implica que no haya nada por hacer con el valor obtenido dentro del método. Es decir, se ejecuta el contenido del método sin buscar almacenar valores en memoria.
Sin embargo, cuando dentro del método se utiliza la palabra "int", "float", etc; esto significa que el método está contenido dentro de una variable, pero al invocarlo se debe almacenar entonces dentro de una variable para poder tenerlo en memoria y utilizarlo múltiples veces.
Hola a todos, resulta que yo estoy trabajando con .NET 6 y el formato de inicio es diferente a este, de hecho no me aparece la clase publica para escribir MyMethods, entonces no se podría instanciar para llamar luego a IntegerAddition, Por favor me podrían decir que cambia?
IntegerAddition(2,3);Console.WriteLine("Multiplicación 2 x 3 = "+IntegerMultiplication(2,3));voidIntegerAddition(int a, int b){ int Addition= a + b;Console.WriteLine("El resultado es 2 + 3 = "+Addition);}int IntegerMultiplication(int a, int b){ int Multiplication= a * b;returnMultiplication;}
Operaciones básicas con métodos, sumar, resta multiplicación y división.
using System;publicclassHelloWorld{public int sumar(int a, int b){return a+b;}public int restar(int a, int b){return a-b;}public int multiplicar(int a, int b){return a*b;}public float dividir(int a, int b){return a/b;}publicstaticvoidMain(string[] args){HelloWorldMiProgrma=newHelloWorld();Console.WriteLine($"Suma 5+5: {MiProgrma.sumar(5,5)}");Console.WriteLine($"Resta 5-5: {MiProgrma.restar(5,5)}");Console.WriteLine($"Multiplicar 5*5: {MiProgrma.multiplicar(5,5)}");Console.WriteLine($"Division 5/5: {MiProgrma.dividir(5,5)}");}}
He utilizado metodo static, para que no dependieran de la clase:
public class MyMethods
{ public staticvoidMain(){ Console.WriteLine("Hola mundo"); Console.WriteLine($"La suma de 2 y 5 es {IntegerAddition(2,5)}"); Console.WriteLine($"La suma de 10 y 5 es {FloatDivision(10,5)}");} public staticintIntegerAddition(int a,int b){int addition = a + b;return addition;} public staticfloatFloatDivision(float a,float b){return a / b;}}
me hubiese gustado que no llamasen a la clase MyMethods porque confunde, hubiese sido mejor Calculator o algo asi, de tal forma que cuando llaman a la clase como "copia" se entenderia un poco mejor.
MyMethods MyProgram = new MyMethods(); ===>
Calculator firstCalculation = new Calculator ();
asi la clase en el ejemplo es la calculadora y cada metodo es una funcion de la calculadora ( suma, multiplicacion, resta y division)
Estoy usando Visual Studio 2022 con Net 6.0. Resolví el reto de la siguiente manera:
<double Division(double a, double b){return a / b;}double div =Division(3,2);Console.WriteLine($"El resultado de dividir estos números es {div}");>
using System;namespace Mis_metodos{classMisMetodos{public float division(float a,float b){ float operacion = a / b;return operacion;}publicstaticvoidMain(){MisMetodos metodo =newMisMetodos(); float imprimir= metodo.division(10,2);Console.WriteLine(imprimir);}}}
Así lo hice con VS2022 y funciona bien.
IntegerAddition(2,3);Console.WriteLine("Multiplicación 2 x 3 = "+IntegerMultiplication(2,3));voidIntegerAddition(int a, int b){ int Addition= a + b;Console.WriteLine("El resultado es 2 + 3 = "+Addition);}int IntegerMultiplication(int a, int b){ int Multiplication= a * b;returnMultiplication;}
Una solución para que funcionen tus metodos, es que crees una instancia de la clase, es decir, de esta manera
publicvoidIntegerAddition(int a, int b){ int Addition= a + b;Console.WriteLine("El resultado de la suma es "+Addition);}public int IntegerMultiplication(int a, int b){ int Multiplication= a * b;returnMultiplication;}public double Division(double a, double b){ double Division= a / b;returnDivision;}publicstaticvoidMain(){ int Value1=0; int Value2=0;Console.WriteLine("Ingrese el primer valor");Value1=Convert.ToInt32(Console.ReadLine());Console.WriteLine("Ingrese el segundo valor");Value2=Convert.ToInt32(Console.ReadLine());MyMethodsMyProgram=newMyMethods();MyProgram.IntegerAddition(Value1,Value2); int result =MyProgram.IntegerMultiplication(Value1,Value2);Console.WriteLine("El resultado de la multiplicación es "+ result); double result2 =MyProgram.Division(Value1,Value2);Console.WriteLine("El resultado de la división es "+ result2);}