オペランド '=='はタイプのオペランドに適用できません(struct)
-
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; }
}
.
前のコードを入れるとき、私はこのエラーが言っています、
オペランド '=='は '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
を使用します。
所属していません StackOverflow