Pergunta

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; }
}

Quando coloco o código anterior, recebo este erro dizendo:

operando '==' não pode ser aplicado a operando do tipo 'Life.setGender' e 'Life.setGender'

(A propósito, o namespace é "Life".É por isso que é 'Life.setGender')

Eu tentei pesquisar, mas ainda não sei o que isso significa.Alguém poderia me ajudar com erro.

Estou usando C#.

Foi útil?

Solução

Tenho certeza de que o que você realmente quer é isto:

public enum Gender 
{
    Male, Female
}

public class Human
{
    public Gender Gender { get; set; }

    public void setHeight(Human person)
    {
        if (person.Gender == Gender.Male)
        {

        }
    }
}

Outras dicas

Você deve substituir o == operador.Verifique este link no MSDN: http://msdn.microsoft.com/en-us/library/dd183755.aspx

No entanto, não vejo o que pode ser feito com este código.Enums seriam apropriados para uso neste caso, não structs.

Você está tentando acessar uma propriedade de instância na classe.Você pode querer Person.Gender == Gender.Male nesse caso.

Observe também que sua nomenclatura está um pouco errada.Nos tipos C# use PascalCase, assim como propriedades e métodos.Uso de campos e locais camelCase.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top