Operand '==' no se puede aplicar a los operandos de tipo (estructura)
-
12-12-2019 - |
Pregunta
public class Human
{
public setGender Gender { get; set; }
public void setHeight(Human Person)
{
if (Person.Gender == setGender.Male) // <-- This is where the error is.
{
}
}
}
public struct setGender
{
public static setGender Male { get; set; }
public static setGender Female { get; set; }
}
Cuando pongo el código anterior, recibo este error que dice,
operando '==' no se puede aplicar a los operandos de tipo 'Life.setgender' y 'vida.setgender'
(El espacio de nombres es "vida" por cierto. Por eso es 'Life.Setgender')
Había intentado buscarlo, pero todavía no sé qué significa eso.Podría alguien por favor ayudarme con el error.
Estoy usando c #.
Solución
Estoy bastante seguro de lo que realmente quieres es esto:
public enum Gender
{
Male, Female
}
public class Human
{
public Gender Gender { get; set; }
public void setHeight(Human person)
{
if (person.Gender == Gender.Male)
{
}
}
}
Otros consejos
Debe anular el operador de ==
.Verifique este enlace en MSDN: http://msdn.microsoft.com/en-us/library/dd183755.aspx
Sin embargo, no veo lo que se puede lograr con este código.Los enumanos serían apropiados para usar en este caso, no estructuras.
Estás tratando de acceder a una propiedad de instancia en la clase.Es posible que desee Person.Gender == Gender.Male
en este caso.
También tenga en cuenta que su nombramiento está un poco apagado.En los tipos de C # usan PascalCase
, al igual que las propiedades y los métodos.Campos y locales usan camelCase
.