Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 20.02.2019
Сообщений: 41

Ошибка CS1586 При создании массива следует указать размер массива или инициализатор массива

06.01.2020, 02:13. Показов 5054. Ответов 7
Метки c# (Все метки)

Студворк — интернет-сервис помощи студентам
Не понимаю в чём ошибка. Ошибка CS1586 При создании массива следует указать размер массива или инициализатор массива.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
 
namespace lab09_hotamovha
{
    public partial class Running : Form
    { 
        Thread c3po1;
        Thread droid1;
        Thread r2d21;
        Thread droideka1;
        Thread probe_droid1;
 
        Random random;
 
       PictureBoxComparable [] pictureBoxes;
 
        public delegate void HelpToCall(PictureBox pictureBox);
        HelpToCall helper;
        
        public Running()
        {
            random= new Random();
            helper = new HelpToCall(Motion);
            InitializeComponent();
            pictureBoxes = new PictureBoxComparable[] ( c3po, droid, r2d2, droideka, probe_droid );
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.01.2020, 02:13
Ответы с готовыми решениями:

Размер массива при создании экземпляра класса
Нет возможности использовать динамически выделяемую память под массив. Используется в микроконтроллерах, память в обрез и компилятор глючит...

указать индекс второго массива, при котором оба массива перестают совпадать
Даны два массива, они упорядочены и надо указать индекс второго массива при котором оба массива перестают совпадать. Например: ...

Почему при создании динамического массива через new ячейки массива имеют значение -842150451?
Я хотел бы узнать почему при создании динамического массива через операцию new ячейки массива имеют значение -842150451. #include...

7
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.01.2020, 02:34
HusrFX, что у вас происходит в 34-й строке?
Во-первых, при инициализации массива с элементами используются фигурные скобки, а не круглые.
Во-вторых, у вас массив имеет тип элементов PictureBoxComparable, а инициализируете вы его элементами типа Thread.
PictureBoxComparable — это созданный вами тип, в котором переопределен оператор неявного приведения от Thread? Если нет, то такая инициализация массива не имеет смысла, т.к. вы его пытаетесь заполнить не теми элементами, которые в нем должны храниться.

А, не заметил наличие единицы в конце имен потоков. +5 за именование переменных! Можете на обфускатор не тратиться
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
06.01.2020, 14:22
HusrFX, Не понимаете, т.к. наворочено всякое и без необходимости. Уточните: массив одномерный или двумерный.
Что в массиве: числа целые или..., строки, даты?
Обычный код массива 10-15 строк
0
1 / 1 / 0
Регистрация: 20.02.2019
Сообщений: 41
06.01.2020, 16:57  [ТС]
Добавлено через 52 секунды
zna926, я создаю гонку PictureBox'ов и в массив я засовываю их через новый класс PictureBoxComparable

Вот этот класс:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace lab09_hotamovha
{
    class PictureBoxComparable : PictureBox, IComparable
    {
        public int CompareTo(object obj)
        {
            PictureBoxComparable tmp = (PictureBoxComparable)obj;
            if (this.Location.X > tmp.Location.X) return 1;
            else
            {
                if (this.Location.X < tmp.Location.X) return -1;
                else return 0;
            }
        }
    }
}
код основной формы нужен? в вопросе я кинул только часть

Добавлено через 28 минут
kolorotur, подчёркивает квадратные скобочки в строке
C#
1
 pictureBoxes = new PictureBoxComparable[](c3po, droid, r2d2, droideka, probe_droid);
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.01.2020, 17:02
HusrFX, у вас PictureBoxComparable[] — это массив, вы пытаетесь его проинициализировать какими-то элементами.
При такой инциализации используются фигурные скобки, а не круглые:
pictureBoxes = new PictureBoxComparable[] { c3po, droid, r2d2, droideka, probe_droid };
1
1 / 1 / 0
Регистрация: 20.02.2019
Сообщений: 41
06.01.2020, 17:16  [ТС]
kolorotur,я пробовал ошибка теперь и там появляется
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.01.2020, 17:19
Цитата Сообщение от HusrFX Посмотреть сообщение
ошибка теперь и там появляется
Текст ошибки + код.
0
1 / 1 / 0
Регистрация: 20.02.2019
Сообщений: 41
06.01.2020, 17:30  [ТС]
kolorotur,
И таких 5 ошибок
Ошибка CS0266 Не удается неявно преобразовать тип "System.Windows.Forms.PictureBox" в "lab09_hotamovha.PictureBoxComparabl e". Существует явное преобразование (возможно, пропущено приведение типов).

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
 
namespace lab09_hotamovha
{
    public partial class Running : Form
    { 
        Thread c3po1;
        Thread droid1;
        Thread r2d21;
        Thread droideka1;
        Thread probe_droid1;
 
        Random random;
 
       PictureBoxComparable [] pictureBoxes;
 
        public delegate void HelpToCall(PictureBox pictureBox);
        HelpToCall helper;
        
        public Running()
        {
            random= new Random();
            helper = new HelpToCall(Motion);
            InitializeComponent();
            pictureBoxes = new PictureBoxComparable[] { c3po, droid, r2d2, droideka, probe_droid };
        }
 
        private void startbtn_Click(object sender, EventArgs e)
        {
            if (c3po1 == null)
            {
                c3po1 = new Thread(Movement1);
                c3po1.IsBackground = true;
                c3po1.Start();
 
                droid1 = new Thread(Movement2);
                droid1.IsBackground = true;
                droid1.Start();
 
                r2d21 = new Thread(Movement3);
                r2d21.IsBackground = true;
                r2d21.Start();
 
                droideka1 = new Thread(Movement4);
                droideka1.IsBackground = true;
                droideka1.Start();
 
                probe_droid1 = new Thread(Movement5);
                probe_droid1.IsBackground = true;
                probe_droid1.Start();
            }
            else
            {
                c3po1.Resume();
                droid1.Resume();
                r2d21.Resume();
                droideka1.Resume();
                probe_droid1.Resume();
            }
            startbtn.Enabled = false;
            
            susbtn.Enabled = true;
            stopbtn.Enabled = true;
        }
        void Motion(PictureBox pictureBox)
        {
            pictureBox.Location = new Point(pictureBox.Location.X + random.Next(1,10), pictureBox.Location.Y);
            Lider();
        }
 
        private void Lider()
        {
            Array.Sort(pictureBoxes);
            pictureBoxes[0].BackColor = Color.Yellow;
            for (int i=1;i<pictureBoxes.Length;i++)
                pictureBoxes[i].BackColor =SystemColors.Control;
        }
 
        void Movement1()
        {
            while (true)
            {
                Invoke(helper,c3po);
                Thread.Sleep(random.Next(30,100));
            }
        }
        void Movement2()
        {
            while (true)
            {
                Invoke(helper,droid);
                Thread.Sleep(random.Next(30, 100));
            }
        }
        void Movement3()
        {
            while (true)
            {
                Invoke(helper, r2d2);
                Thread.Sleep(random.Next(30, 100));
            }
        }
        void Movement4()
        {
            while (true)
            {
                Invoke(helper,droideka);
                Thread.Sleep(random.Next(30, 100));
            }
        }
        void Movement5()
        {
            while (true)
            {
                Invoke(helper, probe_droid);
                Thread.Sleep(random.Next(30, 100));
            }
        }
 
        private void susbtn_Click(object sender, EventArgs e)
        {
            if (c3po1!=null)
            {
                c3po1.Suspend();
                droid1.Suspend();
                r2d21.Suspend();
                droideka1.Suspend();
                probe_droid1.Suspend();
            }
            resbtn.Enabled = true;
        }
 
        private void stopbtn_Click(object sender, EventArgs e)
        {
            susbtn_Click(sender, e);
            Reset();
            startbtn.Enabled = true;
            resbtn.Enabled = false;
            susbtn.Enabled = false;
            stopbtn.Enabled = false;
        }
 
        private void Reset()
        {
            c3po.Location = new Point(12, c3po.Location.Y);
            droid.Location = new Point(12, droid.Location.Y);
            r2d2.Location = new Point(12, r2d2.Location.Y);
            droideka.Location = new Point(12, droideka.Location.Y);
            probe_droid.Location = new Point(12, probe_droid.Location.Y);
            foreach (PictureBoxComparable pb in pictureBoxes)
                pb.BackColor = SystemColors.Control;
        }
 
        private void resbtn_Click(object sender, EventArgs e)
        {
            if (c3po1 != null)
            { 
                c3po1.Resume();
                droid1.Resume();
                r2d21.Resume();
                droideka1.Resume();
                probe_droid1.Resume();
            }
            resbtn.Enabled = false;
        }
 
        private void Running_FormClosing(object sender, FormClosingEventArgs e)
        {
            susbtn_Click(sender, e);
        }
    }
}
Добавлено через 6 минут
kolorotur, всё. спасибо. Я пофиксил эти ошибки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.01.2020, 17:30
Помогаю со студенческими работами здесь

Ошибка при создании массива
Не пойму в чем ошибка... Подскажите пожалуйста. void CreatMas(int *m) { int st,stlb; scanf(&quot;%d&quot;,&amp;st); ...

Ошибка при создании массива
задача такая, методом перебора найти первое простое десятизначное значение дробной части е (эпсилон). для простоты решил не вычислять...

Ошибка при создании двумерного массива
Моя цель: создать матрицу (ее размерность должна вводится через cmd) и заполнить ее случайными числами (используя rand) в промежутке . ...

При создании массива возникает ошибка
string mass = new StreamReader(@&quot;C:\12.txt&quot;,Encoding.Default).ReadToEnd().Split(new string { &quot;\r\n&quot; }, StringSplitOptions.None); ...

Ошибка при создании динамического массива.
Все доброго времени. Начал создавать одномерный массив, потом решил его преобразовать в динамический одномерный. Понимаю что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru