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; }
}

当我输入前面的代码时,我收到此错误消息:

操作数'=='不能应用于“ life.setgender”和“ life.setgender”类型的操作数

(顺便说一下,命名空间是“Life”。这就是为什么它是“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/dd183755.aspx

但是我没有看到这个代码可以完成的内容。枚举在这种情况下适合使用,而不是结构。

您正在尝试访问该类的实例属性。你可能想要 Person.Gender == Gender.Male 在这种情况下。

另请注意,您的命名有点不对劲。在 C# 类型中使用 PascalCase, ,属性和方法也是如此。田野和当地人使用 camelCase.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top