O operando '==' não pode ser aplicado a operandos do tipo (struct)
-
12-12-2019 - |
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#.
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
.