Verständnis der internen Arbeit einer ErweiterungsklassenfunktionalitätC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Verständnis der internen Arbeit einer Erweiterungsklassenfunktionalität

Post by Anonymous »

Ich habe eine Methode wie unten.Product[] productArray = {
new Product { Name="Kayak",Price=275M},
new Product { Name="Lifejacket",Price=375M},
new Product { Name="SoccerBall",Price=475M},
new Product { Name="CornerBall",Price=775M}
};
decimal arrayTotal = productArray.FilterByPrice(700).TotalPrices();
< /code>
Aufrufe Erweiterungsmethoden filterByPrice und Totalprices.public static decimal TotalPrices(this IEnumerable
products)
{
decimal total = 0;
foreach (Product? prod in products)
{
total += prod?.Price ?? 0;

}
return total;
}

public static IEnumerable FilterByPrice(this IEnumerableproductEnum,decimal minimumPrice)
{
foreach(Product? prod in productEnum)
{
if ((prod?.Price ?? 0) >= minimumPrice)
{
yield return prod;

}
}
}
< /code>
Meine erste Frage: < /p>
decimal arrayTotal = productArray.FilterByPrice(700).TotalPrices();
< /code>
Wie der Compiler die Gesamtpreisemethode für die Ausführung zuerst anstelle einer früheren Methode ausgewählt hat? Die Gesamtprects -Methode wird zuerst aufgerufen und geht in die untere Linie für den A (Produkt? Produc in Produkten) < /p>
Danach wird plötzlich der Fluss auf die FilterbyPrice -Methode übertragen. Dann wird der Wert den Wert zurückgeben? Wie? < /P>
Ich möchte wissen, wie das plötzlich passiert ist. Gibt es eine interne Arbeit, die mir fehlt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post