لا يمكن تطبيق المعامل ' ==' على المعاملات من النوع (البنية)
-
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#.
المحلول
أنا متأكد من ما تريده حقا هو: giveacodicetagpre.
نصائح أخرى
يجب عليك تجاوز ==
المشغل أو العامل.تحقق من هذا الرابط على MSDN: http://msdn.microsoft.com/en-us/library/dd183755.aspx
ومع ذلك لا أرى ما يمكن تحقيقه باستخدام هذا الرمز.سيكون التعدادات مناسبة للاستخدام في هذه الحالة، وليس البنيات.
أنت تحاول الوصول إلى خاصية مثيل في الفصل الدراسي.قد ترغب Person.Gender == Gender.Male
في هذه الحالة.
لاحظ أيضًا أن التسمية الخاصة بك بعيدة بعض الشيء.في أنواع C#، استخدم PascalCase
, وكذلك الخصائص والأساليب.الحقول والسكان المحليين يستخدمون camelCase
.