Как мне найти значение неопределенной переменной в других объектах того же класса?C # - PullRequest
0 голосов
/ 03 марта 2019

Я хочу, чтобы этот метод работал с любой переменной, т. Е. Передавая значение метода "Price", а затем получая общую стоимость всех элементов.

private int GetTotalValue(int stat){
    int total = 0;
    foreach(Item i in Vendor.items){
        totalStat += i.stat;
    }
    return total;
}

Однако он не может знатьимя переменной, которую я передал в качестве параметра, и, следовательно, нет способа доступа к нему в других объектах.

Как бы я сказал методу, какую переменную я передаю, а не только ее значение?

1 Ответ

0 голосов
/ 03 марта 2019

Если вам всегда нужна сумма некоторого значения свойства, вы можете инкапсулировать эту логику в метод, например, GetVendorItemSum:

internal class Program
{
    private static void Main(string[] args)
    {
        var items = new[] {
            new Item {Price = 1},
            new Item {Price = 2}
                            };
        var vendor = new Vendor {Items = items};

        var vendorSum = GetVendorItemsSum(vendor, x => x.Price);
    }

    private static int GetVendorItemsSum(Vendor vendor, Func<Item, int> func)
    {
        return vendor.Items.Sum(func);
    }
}

public class Vendor
{
    public IEnumerable<Item> Items;
}

public class Item
{
    public int Price { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...