Operand '==' не может быть применен к операндам типа (структура)
-
12-12-2019 - |
Вопрос
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; }
}
.
Когда я положил в предыдущий код, я получаю эту ошибку, говоря,
Operand '==' не может быть применен к операндам типа «life.setgender» и «life.setgender»
(пространство имен - это «жизнь» кстати. Вот почему это «life.setgender»)
Я пытался посмотреть это, но я до сих пор не знаю, что это значит.Может кто-нибудь, пожалуйста, помогите мне с ошибкой.
Я использую C #.
Решение
Я уверен, что вы действительно хотите, это:
public enum Gender
{
Male, Female
}
public class Human
{
public Gender Gender { get; set; }
public void setHeight(Human person)
{
if (person.Gender == Gender.Male)
{
}
}
}
. Другие советы
Вы должны переопределить оператор ==
.Проверьте эту ссылку на MSDN: http://msdn.microsoft.com/en-us/library/ddd183755.aspx
Однако я не вижу, что можно достичь с этим кодом.Enums будет целесообразно использовать в этом случае, а не структурирует.
Вы пытаетесь получить доступ к свойству экземпляра в классе.Вы можете захотеть генеракодицетагкод в этом случае.
Также обратите внимание, что ваше наименование немного выключено.В типах C # используйте Person.Gender == Gender.Male
, как и свойства и методы.Поля и местные жители используют PascalCase
.