Ошибка компилятора CS1729
«type» не содержит конструктор, принимающий аргументы: «number».
Эта ошибка возникает, когда прямо или косвенно вызывается конструктор какого-либо класса, но компилятор не может найти ни один конструктор с указанным числом параметров. В следующем примере класс test не имеет конструкторов, которые принимают аргументы. Таким образом, у него есть только конструктор без параметров, который принимает ноль аргументов. Так как во второй строке, где возникает ошибка, производный класс не объявляет никакие конструкторы, компилятор предоставляет конструктор без параметров. Этот конструктор вызывает конструктор базового класса без параметров. Поскольку базовый класс не имеет такого конструктора, возникает ошибка CS1729.
Исправление ошибки
- Измените число параметров в вызове конструктора.
- Измените класс таким образом, чтобы он предоставлял конструктор с необходимым вам числом параметров.
- Предоставьте конструктор без параметров в базовом классе.
Пример
Следующий пример приводит к возникновению ошибки CS1729:
// cs1729.cs class Test < static int Main() < // Class Test has only a parameterless constructor, which takes no arguments. Test test1 = new Test(2); // CS1729 // The following line resolves the error. Test test2 = new Test(); // Class Parent has only one constructor, which takes two int parameters. Parent exampleParent1 = new Parent(10); // CS1729 // The following line resolves the error. Parent exampleParent2 = new Parent(10, 1); return 1; >> public class Parent < // The only constructor for this class has two parameters. public Parent(int i, int j) < >> // The following declaration causes a compiler error because class Parent // does not have a constructor that takes no arguments. The declaration of // class Child2 shows how to resolve this error. public class Child : Parent < >// CS1729 public class Child2 : Parent < // The constructor for Child2 has only one parameter. To access the // constructor in Parent, and prevent this compiler error, you must provide // a value for the second parameter of Parent. The following example provides 0. public Child2(int k) : base(k, 0) < // Add the body of the constructor here. >>
См. также раздел
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
C не содержит конструктор который принимает аргументы 0
Регистрация: 30.03.2016
Сообщений: 2
Ошибка в программе: Track не содержит конструктор, который принимает 0 аргументов — C#
Ребята, имеется ошибка в программе: Track не содержит конструктор, который принимает аргументы 0, не могу понять в чём дело, заранее спасибо Код в файле
| 26.1.txt (7.8 Кб, 131 просмотров) |
| GrandMaster |
| Посмотреть профиль |
| Найти ещё сообщения от GrandMaster |
Регистрация: 12.01.2011
Сообщений: 19,500
Странный код, у вас там и interface и class с одним именем Track. Вероятно вам нужно было создать класс (с другим именем) реализующий интерфейс Track (его методы).
Но если убрать интерфейс, то ошибка про конструктор (не связанная с этим) решается либо добавлением конструктора без параметров в класс Track, либо вызовом существующего как-то так:
public Player() : base(параметр1, параметр2, . )
Но вообще код уныл и лучше закопать его куда поглубже
Последний раз редактировалось Alex11223; 30.03.2016 в 20:41 .
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Логер который не содержит отдельных файлов с конфигами — C# WPF | timur2008 | WPF, UWP, WinRT, XAML | 3 | 31.07.2015 08:21 |
| Функция не принимает 0 аргументов | RendomID | Помощь студентам | 2 | 26.03.2015 08:59 |
| TCP сервер, который принимает ссылки с браузера | Vla00 | Общие вопросы .NET | 1 | 18.07.2014 22:26 |
| explicit конструктор без аргументов | _-Re@l-_ | Общие вопросы C/C++ | 0 | 20.12.2011 20:29 |
| Помогите открыть файл который содержит определенное слово в названии. | repo | Microsoft Office Excel | 2 | 03.08.2008 19:00 |
C # «не содержит конструктор, который принимает« 1 »аргументы»
Я прочитал некоторые сообщения на этом сайте, связанные с этой ошибкой, но я до сих пор не могу понять, как это сделать — я довольно новичок в С#. Я пытаюсь передать несколько текстовых полей (только 2 для начала) из Form1 в Form3 (Form2 будет промежуточным добавленным после того, как я получу эту работу) Идея состоит в создании нескольких форм, которые передают данные в последнюю форму и отображение с использованием меток Form3 на данный момент, а затем Form3 сохранит все в файл или базу данных. Надеюсь, что это имеет смысл. Итак, вот пара фрагментов из моего кода: В Form1 у меня есть:
public Form1() < InitializeComponent(); >private void nextBtn_Click(object sender, EventArgs e)
В Form3 у меня есть:
public partial class Form3 : Form < public Form3(string a, string b) < InitializeComponent(); firstNameLbl.Text = a; lastNameLbl.Text = b; >>
Теперь, если я беру строку b, она работает нормально, так что я делаю неправильно?
user2925526 27 окт. 2013, в 18:15
Ошибка при наследовании: не содержит конструктор, который принимает 0 аргументов
Тут всё нормально работает. Почему тут ошибка: BasicRoomNS.BasicRoom не содержит конструктор, который принимает 0 аргументов?
class BasicRoom < protected int numberOfFurniture; protected int numberOfRooms; protected int apartmentNumber; protected int cost; protected bool wifi; public BasicRoom(int a, int b, int c, bool w) : base() < numberOfFurniture = a; numberOfRooms = b; apartmentNumber = c; wifi = w; >class PremiumRoom : BasicRoom < protected bool bar; public PremiumRoom(bool ba, int a, int b, int c, bool w) // Тут ошибка < this.numberOfFurniture = a; this.numberOfRooms = b; this.apartmentNumber = c; this.wifi = w; bar = ba; >>
Отслеживать
задан 19 ноя 2015 в 20:25
2,071 18 18 серебряных знаков 32 32 бронзовых знака
Для чего вообще конструктор с 0 аргументами? У меня же их 5
19 ноя 2015 в 20:26
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Ну собственно все очевидно — базовый тип BasicRoom, от которого наследуется PremiumRoom, не содержит конструктора по умолчанию, потому что вы его не определили. Обычно он создается автоматически (а потому и называется конструктором по умолчанию), но если вы создаете какой-то другой конструктор, то этого не происходит. Однако поскольку PremiumRoom — наследник класса BacicRoom, для его корректной инициализации в нем должна происходить инициализация базового класса, чего вы в данном случае не делаете.Чтобы исправить ошибку вам нужно либо определить конструктор по умолчанию у базового класса, либо вызвать имеющийся конструктор например таким образом:
public PremiumRoom(bool ba, int a, int b, int c, bool w) : base(a, b, c, w)
Отслеживать
ответ дан 19 ноя 2015 в 20:29
DreamChild DreamChild
36.2k 3 3 золотых знака 45 45 серебряных знаков 85 85 бронзовых знаков
Почему тут ошибка: BasicRoomNS.BasicRoom не содержит конструктор, который принимает 0 аргументов?
Тут же всё написано. Ты не вызываешь явно базовый конструктор с параметрами, поэтому компилятор пытается неявно вызвать конструктор без параметров, который не был сгенерирован, поскольку есть конструктор с параметрами.