Visa signatur
"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.
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).
"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.
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).
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.