6236 Programmering I Agenda/Method overload

From Teknologisk videncenter
Jump to: navigation, search

I konto øvelsen havde vi metoden haev. Metoden to sal som en parameter og spurgte brugeren hvor meget der skal hæves.

Lad os antage at vi nogle gange allerede ved hvor meget der skal hæves og gerne vil overfører det beløb som parameter sammen med saldo.

Det kan vi med det der kendes som method overloading.

I eksemplet her har vi to metoder med samme navn, men den ene tager kun en parameter, den anden tager to. Når vi kalder metoden fra main finder C# selv ud af hvilken metode den skal anvende ud fra antallet af parametre.

class Program
{
	static Double haev(Double sal)
	{
		System.Console.WriteLine("Hvor meget vil du hæve?");
		Double beloeb = Convert.ToDouble(System.Console.ReadLine());
		sal = sal - beloeb;
		return sal;
	}

	static Double haev(Double sal, Double belob)
	{
		sal = sal - beloeb;
		return sal;
	}

	static void Main(string[] args)
	{
		Double saldo = 25000;
		
		//Kald den hæv metode som spørger brugeren hvad der skal hæves
		haev(saldo);

		//Kalder den metode der blot hæver beløbet (1000kr)
		haev(saldo, 1000);

		System.Console.ReadKey();
	}
}

En endnu bedre måde er at lade den ene metode kalde den anden, så vi er sikre på der altid udføres den samme opgave.

static Double haev(Double sal)
{
	System.Console.WriteLine("Hvor meget vil du hæve?");
	Double beloeb = Convert.ToDouble(System.Console.ReadLine());
	//Her kalder metoden den anden metode med de ekstra parametre
	return haev(sal, beloeb);
}

static Double haev(Double sal, Double belob)
{
	sal = sal - beloeb;
	return sal;
}