El siguiente código está en C # y estoy usando 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");
}
}
}
Cuando compilo el código anterior, aparece este error:
Error: 'Flujo': los nombres de los miembros no pueden ser los mismos que su tipo adjunto
¿Por qué? ¿Cómo puedo resolver esto?
x
y de dóndey
vienen?El problema está en el método:
private void Flow() { X = x; Y = y; }
Su clase tiene un nombre,
Flow
por lo que este método no puede ser nombrado tambiénFlow
. Tendrá que cambiar el nombre delFlow
método por otro para hacer que este código se compile.¿O pretendías crear un constructor privado para inicializar tu clase? Si ese es el caso, tendrá que eliminar la
void
palabra clave para que el compilador sepa que está declarando un constructor.fuente
Los constructores no devuelven un tipo, simplemente eliminan el tipo de retorno que es nulo en su caso. Entonces funcionaría bien.
fuente
Como Constructor debería estar al comienzo de la Clase, se enfrenta al problema anterior. Por lo tanto, puede cambiar el nombre o, si desea usarlo como constructor, simplemente copie el método al comienzo de la clase.
fuente
simplemente elimine esto porque el constructor no tiene un tipo de retorno como void, será así:
private Flow() { X = x; Y = y; }
fuente
Un constructor no debería tener un tipo de retorno. eliminar void antes de cada constructor.
Alguna característica muy básica de un constructor:
a. Mismo nombre que la clase b. sin tipo de devolución. C. se llamará cada vez que se cree un objeto con la clase. por ejemplo, en su programa si u hizo dos objetos de Flow, Flow flow1 = new Flow (); Flujo flujo2 = nuevo flujo (); entonces se llamará al constructor Flow 2 veces.
re. Si desea llamar al constructor solo por una vez, declare eso como estático (constructor estático) y no olvide eliminar cualquier modificador de acceso del constructor estático.
fuente