L'opérande ' ==' ne peut pas être appliquée à des opérandes de type (struct)
-
12-12-2019 - |
Question
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; }
}
Quand je l'ai mis dans le code précédent, je reçois ce message d'erreur disant:
l'opérande '==' ne peut pas être appliquée à des opérandes de type 'Vie.setGender' et la Vie.setGender'
(L'espace de noms est "la Vie" par le chemin.C'est pourquoi il est la Vie.setGender')
J'avais essayé de chercher mais je ne sais toujours pas ce que cela signifie.Quelqu'un pourrait-il svp m'aide avec l'erreur.
Je suis à l'aide de C#.
La solution
Je suis à peu près sûr de ce que vous voulez vraiment, c'est ce:
public enum Gender
{
Male, Female
}
public class Human
{
public Gender Gender { get; set; }
public void setHeight(Human person)
{
if (person.Gender == Gender.Male)
{
}
}
}
Autres conseils
Vous devez remplacer la ==
de l'opérateur.Suivez ce lien sur le site MSDN: http://msdn.microsoft.com/en-us/library/dd183755.aspx
Cependant je ne vois pas ce qui peut être accompli avec ce code.Les Enums serait approprié d'utiliser dans ce cas, pas des structures.
Vous essayez d'accéder à une propriété d'occurrence de la classe.Vous pouvez Person.Gender == Gender.Male
dans ce cas.
Notez également que votre nom est un peu hors.En C# les types d'utilisation PascalCase
, comme le font les propriétés et méthodes.Les champs et les locaux camelCase
.