Приведенный ниже код написан на C #, и я использую Visual Studio 2010.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
namespace FrontEnd
{
class Flow
{
long i;
private int x,y;
public int X
{
get;set;
}
public int Y
{
get;set;
}
private void Flow()
{
X = x;
Y = y;
}
public void NaturalNumbers(int x, int y)
{
for (i = 0; i < 9999; i++)
{
Console.WriteLine(i);
}
MessageBox.Show("done");
}
}
}
Когда я компилирую приведенный выше код, я получаю эту ошибку:
Ошибка: "Поток": имена элементов не могут совпадать с их включающим типом
Почему? Как я могу это решить?
x
иy
откуда?Проблема в методе:
private void Flow() { X = x; Y = y; }
Ваш класс назван,
Flow
поэтому этот метод также нельзя назватьFlow
. Вам нужно будет изменить имяFlow
метода на другое, чтобы этот код скомпилировался.Или вы хотели создать частный конструктор для инициализации вашего класса? В этом случае вам придется удалить
void
ключевое слово, чтобы компилятор знал, что вы объявляете конструктор.источник
Конструкторы не возвращают тип, просто удалите возвращаемый тип, который в вашем случае недействителен. Тогда все будет нормально.
источник
Поскольку конструктор должен быть в начале класса, вы столкнулись с вышеуказанной проблемой. Итак, вы можете изменить имя или, если хотите использовать его в качестве конструктора, просто скопируйте метод в начале класса.
источник
просто удалите это, потому что конструктор не имеет типа возврата, такого как void, он будет таким:
private Flow() { X = x; Y = y; }
источник
Конструктор не должен иметь возвращаемого типа. удалите void перед каждым конструктором.
Некоторые базовые характеристики конструктора:
а. То же имя, что и у класса b. нет возвращаемого типа. c. будет вызываться каждый раз, когда с помощью класса создается объект. например, в вашей программе, если вы создали два объекта Flow, Flow flow1 = new Flow (); Flow flow2 = новый Flow (); тогда конструктор Flow будет вызван 2 раза.
d. Если вы хотите вызвать конструктор только один раз, объявите его как static (статический конструктор) и не забудьте удалить любой модификатор доступа из статического конструктора.
источник