Код: Выделить всё
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>
Это будет вызовать методы расширения Filterbyprice и Total Pprices. < /p>
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;
}
}
}
Как компилятор выбрал метод общих цен для выполнения сначала вместо прежнего метода?
Мое второе сомнение?
Пока я отладил код, я понял, что метод TotalPrices называется первым, и он переходит к ниже. > После этого внезапно поток передается в метод фильтров. Тогда доход вернет значение? Как? < /P>
Я хочу знать, как это произошло внезапно? Я упускаю свою внутреннюю работу. Может кто -нибудь, пожалуйста, помогите мне решить мою путаницу.
Подробнее здесь: https://stackoverflow.com/questions/793 ... lass-funct
Мобильная версия