Operand '==' non può essere applicato agli operandi di tipo (struttura)
-
12-12-2019 - |
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 #.
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
.