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

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

28.03.2017, 11:12. Показов 14658. Ответов 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
13520 / 9053 / 1328
Регистрация: 21.01.2016
Сообщений: 33,925
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
13520 / 9053 / 1328
Регистрация: 21.01.2016
Сообщений: 33,925
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
13520 / 9053 / 1328
Регистрация: 21.01.2016
Сообщений: 33,925
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
13520 / 9053 / 1328
Регистрация: 21.01.2016
Сообщений: 33,925
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
Ответ Создать тему
Новые блоги и статьи
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
Вот в чем сила LM.
Hrethgir 02.07.2025
как на английском будет “обслуживание“ Слово «обслуживание» на английском языке может переводиться несколькими способами в зависимости от контекста: * **Service** — самый распространённый. . .
Использование Keycloak со Spring Boot и интеграция Identity Provider
Javaican 01.07.2025
Два года назад я получил задачу, которая сначала показалась тривиальной: интегрировать корпоративную аутентификацию в микросервисную архитектуру. На тот момент у нас было семь Spring Boot приложений,. . .
Содержание темы с примерами на WebGL
8Observer8 01.07.2025
Все примеры из книги Мацуды и Ли в песочнице JSFiddle Пример выводит точку красного цвета размером 10 пикселей на WebGL 1. 0 и 2. 0 WebGL 1. 0. Передача координаты точки из главной программы в. . .
Основы WebGL. Простой треугольник
8Observer8 01.07.2025
Простой треугольник без трансформаций. Для трансформаций можно использовать glMatrix, как в примере: https:/ / plnkr. co/ edit/ qT6ZTwvncLPRamK5?preview На русском: . . .
Полиглотные микросервисы на C# и .NET
ArchitectMsa 30.06.2025
Полиглотная архитектура появилась не из желания усложнить жизнь разработчикам. Она родилась из практической необходимости решать разные задачи наиболее эффективным способом. В одном из проектов. . .
Стратегии кеширования
Javaican 29.06.2025
Кеширование — это хранение часто запрашиваемых данных в быстром хранилище (обычно в памяти), чтобы не обращаться к более медленному первоисточнику. Казалось бы, все просто. Но за этой простотой. . .
Наблюдаемость приложений ASP.NET Core с OpenTelemetry, Prometheus и Grafana
ArchitectMsa 29.06.2025
Наблюдаемость (observability) – это ключевое свойство современной системы, позволяющее понимать её внутреннее состояние на основе внешних данных. Если мониторинг отвечает на вопрос "что случилось?",. . .
Четыре главных модели отношений классов в с++
russiannick 28.06.2025
Продолжаю крестовый поход против c++. ideone. com/ юзаю для проверки валидности кода. Насчитал 4 модели отношений классов: одиночный класс, равноправные классы, слейв - мастер, терминатор. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru