詳細はこの下に。私のコード:
フォーム クラス:
public partial class Form1 : Form
{
public ShoppingBasket myBasket = new ShoppingBasket();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (myBasket.IsProductInBasket("Apples"))
{
MessageBox.Show("Yes");
}
else
{
MessageBox.Show("No");
}
}
}
OrderItem クラス:
public class OrderItem
{
public string ProductName { get; set; }
public decimal LatestPrice { get; set; }
public int Quantity { get; set; }
public decimal TotalOrder { get; set; }
public OrderItem(string productName, decimal latestPrice, int quantity)
{
ProductName = productName;
LatestPrice = latestPrice;
Quantity = quantity;
TotalOrder = latestPrice * quantity;
}
}
ショッピング クラス:
public class ShoppingBasket : List<OrderItem>
{
public ShoppingBasket()
{
}
public Form1 fm1;
public bool IsProductInBasket(string productName) //Error of " 'ShoppingBasket.IsProductInBasket(string)': not all code paths return a value"
{
if (fm1.lstCart.Items.Count > 0)
{
for (int i = 0; i < fm1.lstCart.Items.Count; i++) // Warning of 'Unreachable code detected'
{
if (fm1.lstCart.Items[i].ToString().Contains(productName))
{
return true;
}
else
{
return false;
}
}
}
else
{
return false;
}
}
}
なぜそのエラーが発生するのですか? IsProductInBasket は常に true または false を返します。リスト ボックスに負の値が存在することは決してないため、カウントが 0 の場合は false を返し、それ以上の場合はリスト ボックスを通過し、見つかった場合は true を返し、false を返します。そうでない場合。