Пытаюсь построить иерархию классов(из Main вызывается базовый конструктор,который в зависимости от некоторых параметров вызывает один из трех подклассов.) Компилятор выдает ошибку " "***" не содержит конструктор,который принимает аргументы " и "имена членов не могут совпадать с именами типов,в которых они содержаться". Как можно это исправить?
Вызов базового класса
var Price=new Edition(EditionType, PagesNumber, PrintType);
Сам базовый класс
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PriceCalculator
{
public class Edition
{
private readonly int EditionType;
private readonly int PagesNumber;
private readonly int PrintType;
public Edition(int EditionType, int PagesNumber, int PrintType)
{
this.EditionType = EditionType;
this.PagesNumber = PagesNumber;
this.PrintType = PrintType;
int ApproxPrice = PagesNumber * PrintType;
Calculate(ApproxPrice);
}
public int Calculate (int Price)
{
if (EditionType == 1)
{
int value = Convert.ToInt32(new Journal(Price));
return value;
}
else { return 0; }
}
}
}
Класс Journal
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PriceCalculator
{
public class Journal : Edition
{
private readonly int ApproxPrice;
public Journal(int ApproxPrice)
{
this.ApproxPrice = ApproxPrice;
ControlPrice(ApproxPrice);
}
public int ControlPrice(int Price)
{
Console.WriteLine("Test");
var mult = Convert.ToInt32(Console.Read());
return Convert.ToInt32(ApproxPrice * mult);
}
}
}
Конструктор не может что-то возвращать.
public /*int*/ Edition(int EditionType, int PagesNumber, int PrintType)
{
this.EditionType = EditionType;
this.PagesNumber = PagesNumber;
this.PrintType = PrintType;
ApproxPrice = PagesNumber * PrintType;
}
Я поменял код,но осталась одна ошибка в классе Journal "Отсутствует аргумент, соответствующий требуемому формальному параметру "EditionType" из "Edition.Edition(int, int, int)"
У родительского класса Edition
нет конструктора без параметров, вызов которого компилятор пытается вставить в Ваш код. Вот он и жалуется на отсутствие первого параметра EditionType
в этом вызове.
public Journal(int ApproxPrice) : base(?, ?, ?)
{
this.ApproxPrice = ApproxPrice;
ControlPrice(ApproxPrice);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как можно изменить эту часть кода? Ошибка вызвана тем что я пытаюсь использовать ее в C# 4 а она как я понял из C# 60
Есть небольшая проблемаПри парсинге картинок, долго подгружаются изображения в PictureBox(разрешение 140х215, было бы чему грузится)
Существует ли способ определить факт существования строки, удовлетворяющий двум regex в реальном времениНапример для
Взял пример консольное приложение для вывода уведомлений Windows 10Уведомления показываются, но не остаются в центре уведомлений, как допустим...