• Domingo 22 de Diciembre de 2024, 18:34

Autor Tema:  Metodos en c#  (Leído 2172 veces)

MarkiiAk

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Metodos en c#
« en: Lunes 19 de Abril de 2010, 09:56 »
0
using System;
using System.Collections.Generic;
using System.Text;

namespace Celculadora
{
    class Program
    {        
        public string a;

        public void seleccion()
    {
        b:
        Console.WriteLine("Que Opcion Deseas Elegirn1.Suman2.Resta");
        a = Console.ReadLine();
        if ((a != "1") & (a != "2"))
        {
            Console.Clear();
            Console.WriteLine("Eliga una opcion correcta");
            Console.Clear();
            goto b;
        }
        else
        {
            switch (a)
            {
                case "1":                    
                   
                    Console.WriteLine("Hola1");
                    break;
                case "2":
                   
                    Console.WriteLine("Hola 2");
                    break;
            }
        }


    }
        private void suma()
        {
            //esto se muestra aunque yo no quiera por eso lo puse "private" pero no funciono
            Console.WriteLine("Caso uno?");
        }
        private void resta()
        {
            //esto se muestra aunque yo no quiera por eso lo puse "private" pero no funciono
            Console.WriteLine("Caso dos?");
        }
       
        static void Main(string[] args)
        {
            Program markii = new Program();
            markii.seleccion();
            markii.suma();
            markii.resta();
            Console.Read();
        }
    }
}


lo que pasa es que...el case 1 i dos si ejecutan su metodo respectivamente el problema es cuando termina el case...se vuelve a mostrar "Hola1" y "Hola2" es lo que no quiero qe vuelva a aparecer lo que dice el metodo...solo una ves...i solo si c manda a llamar

JaviMarciano

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Metodos en c#
« Respuesta #1 en: Lunes 19 de Abril de 2010, 15:57 »
0
vos estás llamando los dos métodos aquí!


Citar
static void Main(string[] args)
{
Program markii = new Program();
markii.seleccion();
markii.suma();
markii.resta();
Console.Read();
}

cada vez que se ejecuta tu programa su punto de entrada es por Main o sea que lo que vos tenes en ese método principal (Main) se ejecuta siempre creo que lo queres es algo como esto:

Citar
using System;
using System.Collections.Generic;
using System.Text;

namespace Celculadora
{
class Program
{
public string a;

public void seleccion()
{
b:
Console.WriteLine("Que Opcion Deseas Elegirn1.Suman2.Resta");
a = Console.ReadLine();
if ((a != "1") & (a != "2"))
{
Console.Clear();
Console.WriteLine("Eliga una opcion correcta");
Console.Clear();
goto b;
}
else
{
switch (a)
{
case "1":
suma();

Console.WriteLine("Hola1");
break;
case "2":
resta();
Console.WriteLine("Hola 2");
break;
}
}


}
private void suma()
{
Console.WriteLine("Caso uno?");
}
private void resta()
{
Console.WriteLine("Caso dos?");
}

static void Main(string[] args)
{
seleccion();
Console.Read();
}
}
}


otra cosa vos pusiste un if() cuando se ingrese una opción que no sea ni 1 ni 2 creo que sería mejor que uses un "default"
estoy un poco falto de practica pero creo que era algo así:
fijate googlealo entra por def. cuando la opción ingresada no es ning de los case:
switch(a)
{
case 1:
break;

case 2:
break;

default:
}

espero te sea de ayuda saludos!!!

MarkiiAk

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Metodos en c#
« Respuesta #2 en: Lunes 19 de Abril de 2010, 22:01 »
0
en lo del default tienes razon...solo que decidi usar el if...para no usar el defaul...osea hacerlo un poco mas complicado..si bien pude haber hecho los 3 metodos en uno solo lo hice en 3 distintos para mas dificultad