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 #.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top