Основной код:
static void Main(string[] args)
{
ReadProductsArray();
Console.ReadKey();
}
public static int n { get; private set; }
public static Product[] products = new Product[n];
public static Currency[] cur = new Currency[n];
public static Product[] Products { set; get; }
public static void ReadProductsArray()
{
Console.WriteLine("Введіть кількість товарів:");
if (!byte.TryParse(Console.ReadLine(), out byte n))
{
Console.WriteLine("Помилка введення значення. Будь-ласка повторіть введення значення ще раз!");
}
products = new Product[n];
cur = new Currency[n];
for (int i = 0; i < n; i++)
{
products[i] = new Product();
Console.WriteLine($"----------------{i}---------------");
Console.WriteLine("Введіть ім'я:");
products[i].Name = Console.ReadLine();
Console.WriteLine("Введіть ціну:");
products[i].Price = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("Введіть кількість:");
products[i].Quantity = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введіть виробника:");
products[i].Producer = Console.ReadLine();
Console.WriteLine("Введіть вагу:");
products[i].Weight = Convert.ToSingle(Console.ReadLine());
}
}
Код класса где происходит ошибка:
class Currency
{
protected string name;
protected float exRate;
public Currency()
{
name = "UAH";
exRate = 28;
}
public Currency(string n, float e)
{
name = n;
exRate = e;
}
public Currency(string na)
{
name = na;
}
public Currency(Currency previous)
{
name = previous.name;
exRate = previous.exRate;
}
public float GetExRate()
{
return exRate;
}
public string GetName()
{
return name;
}
public string Name
{
set;
get;
}
public float ExRate
{
set;
get;
}
}

Currency(Currency previous), как и любой другой конструктор этого класса. – Alias May 04 '18 at 04:42