質問

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.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/ja/library/dd183755.aspx

しかし私はこのコードで何が達成できるのかわかりません。列挙体は構造的ではなく、この場合に使用するのに適しています。

クラスのインスタンスプロパティにアクセスしようとしています。この場合、Person.Gender == Gender.Maleが必要な場合があります。

あなたの命名は少し離れていることにも注意してください。C#型では、プロパティとメソッドのようにPascalCaseを使用します。フィールドと地元の人々はcamelCaseを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top