c# - 如何从 foreach 循环中获取存储在变量中的对象以传递给方法?
问题描述
我无法将我的项目KartItem
传递给参数。我尝试调试并显示项目中的数据,但是当我尝试将其传递给它时 Deals.BuyOneGetOneFree(item)
它不起作用。
来自 main 的一段代码
Console.WriteLine("Enter Item");
var inputItem = Console.ReadLine();
Console.WriteLine("Enter Pounds");
int inputPound = int.Parse(Console.ReadLine());
Console.WriteLine("Enter Price");
double inputCost = double.Parse(Console.ReadLine());
kart.PutItemInKart(inputItem, inputPound, inputCost);
Console.WriteLine("your item in the kart");
foreach (var item in kart.GetKart())
{
Deals.BuyOneGetOneFree(item); <--- Here
Console.WriteLine(item.Item);
}
我需要将项目传递到的方法
public static string BuyOneGetOneFree(KartItem inKart)
{
if (inKart.Item == "Lettuce" || inKart.Item == "Pespsi" || inKart.Item == "Water")
{
double newCost = inKart.Cost * 2;
return "Your get one buy one credit applied today ! " + newCost.ToString();
}
return "There is no discount for your item at this time";
}
卡丁车项目类别:
public class KartItem
{
public string Item { get; set; }
public int Pound { get; set; }
public double Cost { get; set; }
public KartItem(string item, int pound, double cost)
{
Item = item;
Pound = pound;
Cost = cost;
}
public KartItem()
{
}
}
private List<KartItem> kart = new List<KartItem>();
public List<KartItem> PutItemInKart(string input = null, int inputNumber = 0, double inputPrice = 0)
{
kart.Add(new KartItem()
{
Item = input,
Pound = inputNumber,
Cost = inputPrice
});;
return kart;
}
public List<KartItem> GetKart()
{
return kart;
}
解决方案
如果您试图查看该BuyOneGetOneFree
方法产生的消息,您可以这样做。
foreach (var item in kart.GetKart())
{
var message = Deals.BuyOneGetOneFree(item); // <--- Here
Console.WriteLine(message); // show return message
Console.WriteLine(item.Item);
}
此外,如果您还想更新Cost
,则需要更新项目的成本属性
public static string BuyOneGetOneFree(KartItem inKart)
{
if (inKart.Item == "Lettuce" || inKart.Item == "Pespsi" || inKart.Item == "Water")
{
double newCost = inKart.Cost * 2;
inKart.Cost = newCost;
return "Your get one buy one credit applied today ! " + newCost.ToString();
}
return "There is no discount for your item at this time";
}
推荐阅读
- html - 为什么当它们相邻时,margin-left/right 不适用于两个按钮?
- python - 如何使用 python pptx 创建文本形状?
- git - 两个远程仓库之间的 git push
- html - 存在滚动条时,Bootstrap 4 侧边栏列被切断
- docusignapi - DocuSign - 使用 eSignature REST API v2.1 获取签名 URL
- c# - 我正在使用统一制作我的第一个 2d 游戏(我是菜鸟),我试图制作一个死亡屏障,将角色传送回开始
- python - Python Numpy 在两行之间插入一个值
- powershell - 检查 XML Node 是否为真,如果是,则执行 SQL 语句
- if-statement - C++ 返回类型推导与速记 IF 语句问题
- html - 将图像与相同大小的文本垂直对齐