c# - 如何在同一类的其他对象中找到未指定变量的值?C#
问题描述
我希望此方法适用于任何变量 - 即,将“价格”值传递给该方法,然后获取所有商品的总价格。
private int GetTotalValue(int stat){
int total = 0;
foreach(Item i in Vendor.items){
totalStat += i.stat;
}
return total;
}
但是,它无法知道我作为参数传递的变量的名称,因此无法在其他对象中访问它。
我将如何告诉方法我正在传递什么变量,而不仅仅是它的值?
解决方案
如果您总是想要某个属性值的总和,您可以将该逻辑封装到一个方法中,例如 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; }
}
推荐阅读
- bash - 当 bash 脚本中的任何内容失败时,如何创建自定义错误消息?
- python - Matplotlib:将 DataFrame 值添加到绘图中
- amazon-sqs - 如何在 MassTransit 中不使用 SNS 主题的情况下正确配置 SQS?
- ajax - 无法通过 AJAX 调用 .Net 核心每秒渲染图像
- c++ - 用于光线追踪的 DXR 描述符堆管理
- python - python 凯撒密码蛮力解密
- amazon-cloudformation - AWS Cloudformation - 如何根据条件存储 SSM 值
- colors - 如何制作由颜色代码指示的纳米显示颜色?
- angular - Angular Router 动态侧边栏,无需始终手动设置侧边栏
- perl - Perl Tk Canvas - 是否可以在标签表达式中转义字符?