السلام عليكم ورحمة الله وبركاتة
ماهو ال attributes وماهى فائدتة ؟
ولماذا نستخدمة ؟ ومثال بسيط لو امكن ؟
السلام عليكم ورحمة الله وبركاتة
ماهو ال attributes وماهى فائدتة ؟
ولماذا نستخدمة ؟ ومثال بسيط لو امكن ؟
WWW.ITeShare.com
WWW.ITeShare.net
WWW.ITeShare.info
الattribute أو في السي شارب معروفة أكثر باسم property.. هي عبارة عن متغير وهمي... تقدر تقول كدة معبر ليس له قيمة.. بيقوم بعملية get أو set أو كلاهما
الget بيتحط فيها أوامر تنفذ عند طلب قراءة قيمة الproperty
أما الset فهي أوامر تنفذ عند تعيين قيمة للproperty
http://www.c-sharpcorner.com/UploadFile/ra...ertiesInCS.aspx
امتى تستخدمها .؟
في حاجات كتير.. مثلا.. متغير عايزه يقبل أي رقم ماعدا الصفر مثلا.. فهتخليه هو نفسه private .. وتعمله public property تقدر منها تخزن وتقرا القيمة دي عادي بس جوا التخزين هتخزن أي حاجة ما عدا الصفر.. يعني هتقدر تتحكم في كيفية التعامل مع المتغير
مثال تاني لو عندك مثلا متغير للقطر.. وعايز تخلي في البرنامج كمان متغير نصف القطر.. توفيرا للميموري والأوامر اللي هتخلي قيمة القطر تتغير أول ما قيمة نصف القطر تتغير والعكس... ممكن تعمل واحد منهم متغير (القطر مثلا) والآخر property...
لما تيجي تقرا نصف القطر get تقوم قاري نصف قيمة متغير القطر
ولما تيجي تخزن قيمة في نصف القطر set تبقى تخزن ضعف هذه القيمة في متغير القطر
إذا كنت تريد توضيح أكثر معاك ع الخط بإذن الله
جزاك الله خيرا اخى حسن ولكن ال attributes تختلف عن ال property رجاء بان تسترجع معلومات وتحاول ان تفيدنى فى هذا الموضوع
WWW.ITeShare.com
WWW.ITeShare.net
WWW.ITeShare.info
السلام عليكم
المسميات البرمجية تحير الواحد... لأن الproperty في السي شارب هي فعلا attribute في لغات أخرى مثل ruby... المهم
لقد قمت بقراءة هذه الصفحة عن الattributes
http://www.codeproject.com/csharp/attributes.asp
باختصار هي عبارة عن وصف لمكونات البرنامج.. بمعنى أنها تجعل في إمكانك وضع خصائص لclass أو ل method
وما العيب في جعلها متغير مثلها مثل باقي المتغيرات؟؟؟
لأنها ليست جزء من وظيفة البرنامج... بل إنها جزء من برمجة النظام ومعلومات عنه
كأن أجعل attribute لدالة بحث مثلا أخزن فيها أن هذه الدالة تستعمل خورازمية فلان الإصدار الثاني... هذه المعلومات مفيدة في حالات كثير إذا مثلا جعلت البرنامج يبعث تقرير لإيميل معين حين يحدث خطأ وأردته أن يحتوي إصدارات الدوال مثل نظام Bugzilla وخلافه
وعليكم السلام ورحمة الله وبركاته.
الـ Attributes هي كما قال الأخ حسان في المشاركة الأخيرة. واذا تعلمت الـ COM+ ستجدها هامة جدا, مثلا تحدد فيها اذا كان الأوبجكت كذا تتطلب عملياته Transaction جديدة أم تستخدم الـ Transaction الحالية وتحدد الـ Time-out بتاعتها والخ وتحدد من له الحق في استخدام Methods معينه... فالـ Attributes تضع بها معلومات حول الـ Types يمكن معرفة هذه المعلومات أثناء الـ Runtime باستخدام ما يعرف بالـ Reflection. وللتبسيط يمكن أن تقول على الـ Attributes أنها MetaData, أي أنها Data تصف الـ Data ! بمعنى أنها بيانات تصف الـ Classes و Properties والخ.
مثال آخر يمكن أن تتعرض له: اذا كنت تطور Windows Control Library أو كومبوننت فباستخدام الـ Attributes يمكنك تحديد الصورة التي تظهر في الـ Toolbox بجانبها, ويمكنك اظهار أو اخفاء بعض الـ Public Properties والأحداث بحيث لا يظهرون في نافذة الـ Properties. ويمكنك تحديد الحدث الافتراضي ( Default Event ) ( الحدث الافتراضي هو الذي يقوم الفيجوال ستوديو بانشاء دالة تتعامل معه أوتاميتيكيا عندما تضغط ضغطتين على الـ Control مثل TextChanged بتاع الـ TextBox و Load بتاع الـ Form والخ ) ويمكنك تحديد القيمة الافتراضية. كل هذا تحدده بوضع بعض الـ Attributes فوق الكلاس أو الـ Method أو الـ Property.
يوجد أيضا Attribute شهيرة اسمها WebMethod تقوم بوضعها فوق الـ Method لتتحدد أن هذه الـ Method يمكن أن يتم استدعائها عبر الانترنت ( عبر الـ HTTP أو الـ SOAP اللي هو جوه الـ HTTP برضه ) ويتم استخدامها بكثرة في عالم الـ ASP .NET XML Web Services.
كما رأيت يوجد Attributes جاهزة يستفيد منها الـ CLR وغيره كالـ Visual Studio كالتي ذكرتها وهي كثيرة وتكفيك. لكن يمكنك أنت انشاء Attributes خاصة بك اذا احتجت هذا, ( أنا عن نفسي لم أحتاج إلى كتابة Custom Attributes حتى الآن ).
اقرأ أيضا الموضوع التالي, ربما يفيدك :
تم تعديل هذه المشاركة بواسطة معتز شمس في 21 يونيو 2007 في 16:41 — السبب: اضافة وصلة
هذا الموضوع مغلق.