لا يمكن تطبيق المعامل ' ==' على المعاملات من النوع (البنية)

StackOverflow https://stackoverflow.com//questions/10677142

سؤال

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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top