Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/75: Рейтинг темы: голосов - 75, средняя оценка - 4.68
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740

Пространство имен уже содержит определение для класса

28.03.2017, 11:12. Показов 14990. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

Опишу свою проблему. Пишу дипломную работу, и в практической части мне нужно написать программную реализацию неокогнитрона. Решил взять эту тему, хотя, конечно, сомневался, смогу ли я написать программу...

Решил писать на C#. На данный момент создана форма, описаны интерфейсы нейронов и плоскостей. Интерфейсы нейронов реализовал с помощью наследования - класс-потомок Neuron и от него производные классы "SCell", "C", "Brake", "Lateral"(изначально назвал SNeuron, CNeuron, BrakeNeuron, LateralNeuron, но выдавало ошибку, которая в сабже, для первых трех классов). С плоскостями так же.

Однако, после переименования классов ошибка "Пространство имен уже содержит определение для класса" осталась. Что я не так делаю?

Вот список ошибок:

1>f:\landik\документы\visual studio 2012\Projects\Неокогнитрон\Неокогнитрон\ Neuron.cs(124,18,124,19): error CS0101: Пространство имен "Неокогнитрон" уже содержит определение для "C"
1>f:\landik\документы\visual studio 2012\Projects\Неокогнитрон\Неокогнитрон\ Neuron.cs(156,18,156,23): error CS0101: Пространство имен "Неокогнитрон" уже содержит определение для "Brake"
1>f:\landik\документы\visual studio 2012\Projects\Неокогнитрон\Неокогнитрон\ SNeuron.cs(9,11,9,16): error CS0101: Пространство имен "Неокогнитрон" уже содержит определение для "SCell"

Добавлено через 3 минуты
Вот файл Neuron.cs, если что....правда, тут 260 строк:

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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Неокогнитрон
{
   public class Neuron
    {
        protected double[,] inputs;
        protected double synapse;
        protected double output;
 
        public Neuron()
        {
            inputs = new double[4, 4];
 
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    inputs[i, j] = 0;
 
            synapse = 0;
            output = 0;
        }
 
        public void setInputs(int a, int b, int c, int d, double[,] mas)
        {
            int k = 0;
            int n = 0;
 
            for (int i = a; i < b; i++)
            {
                for (int j = c; j < d; j++)
                {
                    inputs[k, n] = mas[i, j];
                    n++;
                }
 
                k++;
                n = 0;
            }
        }
 
        public double[,] getInputs()
        {
            return inputs;
        }
 
        public double getSynapse()
        {
            return synapse;
        }
    };
 
    public class SCell : Neuron
    {
        private double[,] SSynapses;
        private double lateralSynapse;
 
        public SCell()
        {
            lateralSynapse = 0;
 
            SSynapses = new double[4, 4];
 
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    SSynapses[i, j] = 0;
        }
 
        public void setSSynapses(int a, int b, int c, int d, double[,] mas)
        {
            int k = 0;
            int n = 0;
 
            for (int i = a; i < b; i++)
            {
                for (int j = c; j < d; j++)
                {
                    SSynapses[k, n] = mas[i, j];
                    n++;
                }
 
                k++;
                n = 0;
            }
        }
 
        public void setLateralSynapse(double num)
        {
            lateralSynapse = num;
        }
 
        public double getLateralSynapse()
        {
            return lateralSynapse;
        }
 
        public double getSOutput(double num1, double num2, double output1, double output2)
        {
            double E = 0;
            double I = 0;
 
            double NET = 0;
 
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    E += (SSynapses[i, j] * inputs[i, j]);
 
            I = ((num1 * output1) + (num2 * output2));
 
            NET = (((1 + E) / (1 + I)) - 1);
 
            if (NET > 0)
                output = NET;
            else
                output = 0;
 
            return output;
        }
    }
 
    public class C : Neuron
    {
        private double cSynapse;
 
        public void setCSynapse(double num)
        {
            cSynapse = num;
        }
 
        public double getCOutput()
        {
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    if (inputs[i, j] > 0)
                    {
                        output = 1;
                        break;
                    }
            return output;
        }
 
        public void startChangeCSynapse(double q1, double syn, double outp)
        {
            synapse = (q1 * syn * outp);
        }
 
        public void ChangeCSynapse(double q, double syn, double outp)
        {
            synapse = (q * syn * outp);
        }
    }
 
    public class Brake : Neuron
    {
        private double[,] BSynapses;
 
        public Brake()
        {
            BSynapses = new double[4, 4];
 
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    BSynapses[i, j] = 0;
        }
 
        public void setBSynapses(int a, int b, int c, int d, double[,] mas)
        {
            int k = 0;
            int n = 0;
 
            for (int i = a; i < b; i++)
            {
                for (int j = c; j < d; j++)
                {
                    BSynapses[k, n] = mas[i, j];
                    n++;
                }
 
                k++;
                n = 0;
            }
        }
 
        public double getBOutput()
        {
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    output += Math.Pow((BSynapses[i, j] * inputs[i, j]), 2);
 
            return Math.Sqrt(output);
        }
 
        public void startChangeBSynapse(double q)
        {
            synapse = (q * output);
        }
 
        public void changeBSynapse(double q)
        {
            double sum = 0;
 
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    sum += (BSynapses[i, j] * inputs[i, j]);
 
            synapse = ((q * sum) / (2 * output));
        }
    }
 
    public class Lateral : Neuron
    {
        private double[,] LSynapses;
        private double lInhib;
 
        public Lateral()
        {
            lInhib = 0;
            LSynapses = new double[4, 4];
 
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    LSynapses[i, j] = 0;
        }
 
        public void setLSynapses(int a, int b, int c, int d, double[,] mas)
        {
            int k = 0;
            int n = 0;
 
            for (int i = a; i < b; i++)
            {
                for (int j = c; j < d; j++)
                {
                    LSynapses[k, n] = mas[i, j];
                    n++;
                }
 
                k++;
                n = 0;
            }
        }
 
        public void setLInhib()
        {
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                    lInhib += (LSynapses[i, j] * inputs[i, j]);
        }
 
        public double getLOutput(double num)
        {
            output = (((1 + num) / (1 + lInhib)) - 1);
 
            return output;
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2017, 11:12
Ответы с готовыми решениями:

Можно ли импортировать пространство имен Console, чтобы в коде уже не указывать
Простите за вопрос. К примеру можно ли это... using System; namespace HelloS { public class HelloC { public...

Пространство имен для работы с virtual WiFi
есть ли пространство имен для работы с virtual WiFi?

Ошибка: "не удается найти имя типа или пространство имен Shed" при использовании класса
Я начал с книги фленова. Фленов М. - Библия С#. 2-е издание - 2011. Но Книга написано слишком сложным языком. слишком много теории мало...

10
Эксперт .NET
 Аватар для Usaga
14078 / 9295 / 1347
Регистрация: 21.01.2016
Сообщений: 34,895
28.03.2017, 11:13
Sh@dow777, значит у тебя в коде где-то определены несколько классов\стурктур\интерфейсов с одним и тем же именем.
1
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
28.03.2017, 11:23  [ТС]
Usaga, Я проверял несколько раз. В трех файлах нет ни одного одинакового имени. Я прочитал, что ошибка появляется даже если имена не одинаковые, но частично совпадают. Например, SNeuron - Neuron. Поэтому переименовал классы. Но ошибки остались.
0
Эксперт .NET
 Аватар для Usaga
14078 / 9295 / 1347
Регистрация: 21.01.2016
Сообщений: 34,895
28.03.2017, 11:28
Sh@dow777, компилятор вам говорит, что имена где-то с чем-то совпадают. Он - робот, ему виднее. В примере кода выше определены классы, на которые жалуется компилятор. Видимо они и в отдельных файлах тоже есть.
1
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
28.03.2017, 11:39  [ТС]
Usaga, Вот, взгляните. Файл Plane.cs(плоскости):

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Неокогнитрон
{
    class Plane
    {
        protected double[,] outputs;
 
        public Plane()
        {
            outputs = new double[12, 12];
 
            for (int i = 0; i < 12; i++)
                for (int j = 0; j < 12; j++)
                    outputs[i, j] = 0;
        }
    }
 
    class Simple : Plane
    {
        public SCell[,] sNeurons;
        public Lateral[,] lNeurons;
        
        public Simple()
        {
            sNeurons = new SCell[12, 12];
            lNeurons = new Lateral[12, 12];
        }
    }
 
        class Complex : Plane
        {
            public C[,] cNeurons;
            public Brake[,] bNeurons;
 
            public Complex()
            {
                cNeurons = new C[12, 12];
                bNeurons = new Brake[12, 12];
            }
        }
}
Файл Form1(метод Neocognitron еще далеко не закончен... это я прежде, чем реализовывать алгоритм и само обучение, решил запустить программу, и получил свои чудесные ошибки...):

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
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;
 
namespace Неокогнитрон
{
    public partial class Form1 : Form
    {
        Bitmap image;
 
        public double[,] pixels;
 
        public void printing()
        {
            int var;
            int n = image.Width;
            int m = image.Height;
 
            pixels = new double[n, m];
 
            for (int k = 0; k <= 11; k++)
                listBox1.Items.Add(" ");
 
            for (int i = 0; i <= 11; i++)
                for (int j = 0; j <= 11; j++)
                {
                    var = image.GetPixel(i, j).R;
                    if (var >= 250)
                        var = 0;
                    else
                        var = 1;
 
                    pixels[i, j] = var;
 
                    listBox1.Items[j] = listBox1.Items[j] + "  " + Convert.ToString(var);
                }
        }
 
        public void Neocognitron(double[,] array)
        {
            Simple[,] splanes;
            Complex[,] cplanes;
 
            double[,] sOutputs;
            double[,] lOutputs;
            double[,] cOutputs;
            double[,] bOutputs;
 
            double[,] lSynapses;
            double[,] cSynapses;
            double[,] bSynapses;
 
            double q = 10;
            double q1 = 5;
 
            int layers = 4;
            int epochs = 100;
            int i, j;
 
            splanes = new Simple[4, 12];
            cplanes = new Complex[4, 12];
 
            sOutputs = new double[12, 12];
            lOutputs = new double[12, 12];
            cOutputs = new double[12, 12];
            bOutputs = new double[12, 12];
 
            lSynapses = new double[12, 12];
            cSynapses = new double[12, 12];
            bSynapses = new double[12, 12];
        }
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                image = new Bitmap(openFileDialog1.FileName);
                pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                pictureBox1.Image = image;
                pictureBox1.Invalidate();
            }
 
            printing();
        }
    }
}
Одинаковых имен нет...либо я слепой.
0
Эксперт .NET
 Аватар для Usaga
14078 / 9295 / 1347
Регистрация: 21.01.2016
Сообщений: 34,895
28.03.2017, 11:47
Sh@dow777, причём здесь эти файлы? Компилятор говорит вам про конкретные классы в Neuron.cs, что они уже в другом месте объявлены и определены. В другом файле, или в библиотеке.
1
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
28.03.2017, 11:50  [ТС]
Usaga, Так что вы мне посоветуете сделать? Просто подбирать разные имена?
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
28.03.2017, 11:51
господи, просто скиньте проект, мы почитаем а потом ткнём вас носом туда, где ошибка, что за гадание по логам?
0
Эксперт .NET
 Аватар для Usaga
14078 / 9295 / 1347
Регистрация: 21.01.2016
Сообщений: 34,895
28.03.2017, 11:53
Sh@dow777, я просто надеялся, что вы достаточно сообразительны, чтобы в своём коде разобраться и понять, где и что и сколько раз объявили.

Добавлено через 1 минуту
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Просто подбирать разные имена?
Ну, как бы, да. Или разносить по разным пространствам имён. Или вы думаете компилятор сам догадается, какой класс вы имеете в виду, если у вас куча их с одним и тем же именем и в одном пространстве имён?
1
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
28.03.2017, 12:13  [ТС]
Все, разобрался. Забыл, что до реализации наследования писал эти классы в отдельных файлах, и забыл эти файлы удалить. Обозреватель решений помог.

Spectral-Owl,

Не по теме:

Не стОит так отвечать) Я ж вроде ничего плохого вам не сказал, да и не тупой я...просто кратковременное помутнение мозгов...со всеми ж бывает.



Добавлено через 2 минуты
Usaga, А вам спасибо
0
28.03.2017, 13:07

Не по теме:

Sh@dow777, да вроде ничего обидного не писал, если что - звиняйте. Просто наискорейшее решение вашей проблемы, с небольшим утомлением тем, что диалог идёт об одном и том же уже шестой пост) Удачи.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2017, 13:07
Помогаю со студенческими работами здесь

Пространство имен
Добрый день. Стоит у меня VS Express 2010, MS Server 2008, SQL Management Studio Express 2008. Пишу на шарпе приложение с базой данных. VS...

пространство имен
Кто-нибудь знает какие using System. надо использовать для этого? windows = WindowHelper.EnumerateTopWindows();

Пространство имен
using namespace System; using namespace System::Collections; using namespace System::ComponentModel; using namespace System::...

Пространство имен
Народ, понимаю, что вопрос тупой, и заранее прошу за это прощения, но какое пространство имен нужно подключить для работы с клавиатурой?

Пространство имен
Как собственно сделать что бы &quot;string ch = my.change + &quot;.txt&quot;;&quot; было что я написал, а не &quot;null.txt&quot;. Если в одном классе размещенно,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru