#c#
Вопрос:
Я пытаюсь распечатать сведения о продукте, создав класс Product и метод Display() в классе Product для отображения сведений о продукте.
Я создал массив продуктов и пытаюсь сохранить продукты в массиве и пытаюсь отобразить продукты из массива с помощью метода отображения.
Пользователь должен предоставить выбор , хочет ли он ДОБАВИТЬ ПРОДУКТ, ОТОБРАЗИТЬ ПРОДУКТ или ВЫЙТИ
на основе выбора необходимо выполнить действие.
class Product
{
private static int m_intProductCounter = 0; // Initially Making Product Count = 0
public Product() // Constructor for class Product
{
m_intProductCounter ; // Whenever new object is created or Constructor is called Count Increases
}
public int ProductCount // Properity for Product Count
{
get { return m_intProductCounter; }
}
private int m_intProductid; // Product Id Variable
public int ProductId // properity for Product Id
{
get { return m_intProductid; }
set
{
if (value > 0)
m_intProductid = value;
else
throw new Exception("Invalid Product Id! Please Check Product Id.");
}
}
private string m_strProductName; // Product Name Variable
public string ProductName // Properity for Product Name
{
get { return m_strProductName; }
set
{
if (value.Length > 3)
m_strProductName = value;
else
throw new Exception("Invalid Product Name! Please Check Product Name.");
}
}
private DateTime m_dateManufacturedDate = DateTime.UtcNow; // Product Manufactured date variable
//private DateTime m_dateExpiryDate;
public DateTime ExpiryDate // Product Expiry Date Calculation
{
get { return m_dateManufacturedDate.AddYears(2); }
}
private int m_intProductQuantity; // Product Quantity variable
public int ProductQnty
{
get { return m_intProductQuantity; } // Properity for Product Quantity
set
{
if (value > 0 amp;amp; value <= 500)
m_intProductQuantity = value;
else if (value < 0)
throw new Exception("Invalid Quantity! Product Quantity cannot be Less Than 0");
else
throw new Exception("Invalid Quantity! Product Quantity Cannot be more than 500.");
}
}
private decimal m_decProductPrice; // Product Price variable
public decimal ProductPrice // Properity for Product Price
{
get { return m_decProductPrice; }
set
{
if (value > 0)
m_decProductPrice = value;
else
throw new Exception("Invalid Producr Price! Product price Cannot Be less than 0");
}
}
private decimal m_decDiscountPrice; // Product Discount variable
public decimal Discount // Properity for Product Discount
{
get { return m_decDiscountPrice; }
set
{
if (value <= 45 amp;amp; value > 0)
m_decDiscountPrice = value;
else if (value < 0)
throw new Exception("Product Discount can be either 0 or morethan that, but can't be zero.");
else
throw new Exception("Product discount can't be more than 45");
}
}
public string Display() // Displaying Product Details.
{
StringBuilder display = new StringBuilder();
display.Append("Product ID = " ProductId "n");
display.Append("Product Name = " ProductName "n");
//disp.Append("Product Manufactured Date = " );
display.Append("Product Expiry Date = " ExpiryDate "n");
display.Append("Product Price Per 1 Quantity = " ProductPrice "n");
display.Append("Product Quantity = " ProductQnty "n");
display.Append("Product Discount per 1 Quantity= " Discount "n");
return display.ToString();
}
}
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Enter 1 to ADD product.n Enter 2 to Display Product. n Enter 3 to Exit.");
string Instruction = Console.ReadLine();
Product[] products = new Product[3];
switch (Instruction)
{
case "1":
{
Product p1 = new Product();
Console.Write("Enter Producr Id : ");
p1.ProductId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Product Name : ");
p1.ProductName = Console.ReadLine();
Console.Write("Enter Product Quantity : ");
p1.ProductQnty = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Product Price : ");
p1.ProductPrice = Convert.ToDecimal(Console.ReadLine());
Console.Write("Enter Product Discount in number without % symbol : ");
p1.Discount = Convert.ToDecimal(Console.ReadLine());
products.Append(p1);
Console.WriteLine("n n n" "Product Added Succesfully n " "ThankYou.");
Console.WriteLine("Total Products Entered = " p1.ProductCount);
}
break;
case "2":
{
Console.WriteLine(products[0].Display());
break;
}
}
if (Instruction == "3")
break;
}
}
}
Комментарии:
1. Почему вы используете
products.Append(p1);
для добавления элемента в свой массив «продукты»?2. чтобы вставить p1 в массив, если это неправильно, подскажите мне, что использовать вместо этого.
Ответ №1:
почему вы используете массив для сбора продуктов? И внутри, пока вы всегда создаете новый массив для продуктов (внутри, пока: Продукт[] продукты = новый продукт[3];)!
Используйте список или любую динамическую коллекцию в этом случае, измените свой основной метод на этот:
static void Main(string[] args)
{
var products = new List<Product>();
while (true)
{
Console.WriteLine("Enter 1 to ADD product.n Enter 2 to Display Product. n Enter 3 to Exit.");
string Instruction = Console.ReadLine();
switch (Instruction)
{
case "1":
{
var p1 = new Product();
Console.Write("Enter Producr Id : ");
p1.ProductId = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Product Name : ");
p1.ProductName = Console.ReadLine();
Console.Write("Enter Product Quantity : ");
p1.ProductQnty = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Product Price : ");
p1.ProductPrice = Convert.ToDecimal(Console.ReadLine());
Console.Write("Enter Product Discount in number without % symbol : ");
p1.Discount = Convert.ToDecimal(Console.ReadLine());
products.Add(p1);
Console.WriteLine("n n n" "Product Added Succesfully n " "ThankYou.");
Console.WriteLine("Total Products Entered = " p1.ProductCount);
}
break;
case "2":
{
foreach (var item in products)
Console.WriteLine(item.Display());
break;
}
}
if (Instruction == "3")
break;
}
}
Комментарии:
1. Спасибо, это сработало, я заменил продукт[] продукты = новый продукт[3]; выше ПОКА. Я хочу попробовать использовать МАССИВ вместо СПИСКА.
2. и измените свой массив на динамическую коллекцию )