Permalänk

[.NET]Överlagring

Hur är överlagringen definierad i .NET?

I följande fall kunde båda metoderna användas, men det verkar som parameterlistan går före returvärdet.

private static void MyTest() { long result = Test(1); Console.WriteLine(string.Format("result = {0}", result)); } private static long Test(long p) { return ++p; } private static int Test(int p) { return --p; } result = 0

Alltså i exemplet så kunde man tänka sig att det är metoden som returnerar en long som används men eftersom det är en int som skickas in som parameter så kommer metoden som returnerar en int att användas (och int:e cast'as till en long).

Visa signatur

"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.

Permalänk
Medlem

Det är precis som du säger att parameterlistan går före returvärdet. Eller snarare det är bara parameterlistan som används. Du kan inte ha två metoder med samma namn och argument (och olika returtyper).