![]() |
|
Auto-Implemented Properties In Visual Basic 2010 - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : Auto-Implemented Properties In Visual Basic 2010 (/showthread.php?tid=4151) |
Auto-Implemented Properties In Visual Basic 2010 - Islam Ibrahim - 17-09-12 الخصائص المعرفة تلقائياً Auto-Implemented Properties تمكنك من كتابة الخصائص الخاصة بفئتك دون الحاجة لكتابة حقول Get & Set يدوياً , وفي هذه الحالة يقوم مترجم Visual Basic بتوليد Private Fields من أجلك كما يقوم أيضاً بتوليد حقول Get و Set تلقائيا أثناء وقت الترجمة Compile Time (هذه الميزة تشبه إلى حد ما ال Automatic Properties والموجودة في #C) . الخاصية المعرفة تلقائياً تعد مكافئة لخاصية ذات حقل خاص Private field المثال التالي يوضح كيفية كتابتها: كود : Property Prop2 As String = "Empty"كود : Private _Prop2 As String = "Empty"كود : Public Property Name As StringBacking Field عند استخدام خاصية معرفة تلقائياً يقوم المترجم بإضافة حقل خفي والذي سيحمل قيمة تلك الخاصية , هذا المتغير يحمل نفس النوع الذي تم به تعريف تلك الخاصية كما يحمل نفس الاسم مسبوقاً بعلامة (_) , على سبيل المثال إذا قمت بتعريف خاصية بالاسم ID سيكون اسم المتغير الخفي _ID , وفي هذه الحالة إذا قمت بتعريف متغير آخر ضمن نفس الفئة يحمل نفس الإسم _ID فإن ذلك سيحدث لبساً وسيقوم المترجم عندها بتوليد خطأ أثناء الترجمة .ال Backing field يتميز بالخصائص التالية:
تهيئة الخصائص المعرفة تلقائياً Initializing Auto-Implemented Properties
كود : Property FirstName As String = "James"
كود : Property Grades As Integer() = {90, 73}متى يمكن استخدام الخصائص المعرفة تلقائياً؟ الخصائص المعرفة تلقاءياً مفيدة كثيراً ويمكن استخدامها في سيناريوهات مختلفة , ولكن توجد بعض الحالات التي يتعذر فيها استخدامها , والتي لابد فيها من تعريف الخصائص بالطريقة القياسية أو بالطريقة الموسعة . لن تتمكن من استخدام الخصائص المعرفة تلقائياً في الحالات التالية:
تحويل الخصائص المعرفة تلقائياً إلى خصائص موسّعة Extended Properties عندما ترغب في توسيع خاصية معرفة تلقائياً إلى خاصية قياسية أو موسعة , سيمكّنك محرر الكود عندها من القيام بذلك بحيث سيقوم بتوليد أجزاء Get & Set بالإضافة إلى السطر End Property تلقائياً وذلك بالوقوف في سطر فارغ أسفل تعريف الخاصية المعرفة تلقائياً وكتابة الحرف G (من أجل الجزء Get) أو الحرف S (من أجل الجزء Set) , ومن ثم الضغط على زر Emter, يقوم محرر الكود بتوليد أجزاء Get & Set من أجل القراءة /ReadOnly أو الكتابة فقط WriteOnly عند الضغط على Enter مباشرة بعد تعريف الخاصية. منتهى الروعة! أليس كذلك؟ مترجم بتصرف. |