Domanda

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 ho inserito il codice precedente, ricevo questo errore dicendo,

.

Operando '==' non può essere applicato agli operandi di tipo 'life.setgender' e 'life.setgender'

(lo spazio dei nomi è "la vita" a proposito. Ecco perché è 'life.setgender')

Avevo provato a cercarlo ma non so ancora cosa significhi.Qualcuno potrebbe aiutarmi con errore.

Sto usando C #.

È stato utile?

Soluzione

Sono abbastanza sicuro di cosa vuoi davvero è questo:

public enum Gender 
{
    Male, Female
}

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

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

        }
    }
}
.

Altri suggerimenti

È necessario sovrascrivere l'operatore ==.Controlla questo link su MSDN: http://msdn.microsoft.com/en-us/library/DD183755.aspx

Comunque non vedo cosa può essere realizzato con questo codice.Gli organismi sarebbero appropriati da utilizzare in questo caso, non struttura.

Stai cercando di accedere a una proprietà di istanza sulla classe.Puoi volere Person.Gender == Gender.Male in questo caso.

Si noti inoltre che la tua denominazione è un po 'fuori.Nei tipi di C # utilizzano PascalCase, come proprietà e metodi di proprietà.Campi e locali usano camelCase.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top