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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top