امتدت مع الكلمة الرئيسية في vb.net
-
27-09-2019 - |
سؤال
في مشروعي الحالي ، يسمي الجميع المتغيرات والأساليب بعد ما يفعلونه وماذا يفعلون. يعد هذا جيدًا لفهم الكود بسرعة ، ولكن مع وجود الكثير من الأسماء الطويلة المتنوعة تأتي بعض الصداع ، مثل عند نسخ مجموعة البيانات إلى كيان/كائن. لذلك ، بينما تفهم الرمز ، لا تزال قابلية القراءة تأخذ ضربة.
veryLongVariableName.Id = datasetVeryLongVariableName.Id
veryLongVariablename.Something = datasetVeryLongVariableName.Something
etc.
يمكن أن يساعد استخدام VB.NET مع الكلمة الرئيسية.
With veryLongVariableName
.Id = datasetVeryLongVariableName.Id
.Something = datasetVeryLongVariableName.Something
End With
الآن ، سؤالي ، هل هناك أي طريقة لاستخدامها ، أو شيء مشابه ، ولكن لعدة متغيرات في نفس الوقت؟ شيء مثل:
With veryLongVariableName As a, datasetVeryLongVariableName as b
a.Id = b.Id
a.Something = b.Something
End With
أنا جميعًا من أجل اتفاقيات التسمية الوصفية ، لكنها تميل إلى فوضى الأشياء. خاصة في VB!
المحلول
إذا كان الرمز الذي يقوم به مجموعات المهام هذه جزءًا من إجراء منطقي واحد ، فيمكنك إعادة تجهيزه في مكالمة طريقة/وظيفة خاصة به. على الرغم من أن هذا لا يجيب على وجه التحديد على سؤالك حول مضاعف مع الاستخدام ، إلا أنه سيحسن المستعمرة في خطوط مع اقتراحات موجودة في الكتب الشائعة مثل Code Complete.
نصائح أخرى
لا، هذا غير ممكن.
With
يعمل مع كائن واحد فقط. نرى MSDN.
ومع ذلك ، يمكنك ، عش With
صياغات (على الرغم من أن هذا لا ينصح به لأنه قد ينتهي بك الأمر إلى جعل الكود الخاص بك غير قابل للقراءة حقًا).
وراء الكواليس ، كل With
الكلمة الرئيسية تفعل هو إعلان متغير مؤقت يشير إلى الكائن الذي تحدده. سيتم تجميع مراجعها إلى نفس رمز IL مثل التأهل بالكامل لاسم الكائن ، لذلك لا توجد عقوبة أداء. يمكنك بسهولة القيام بذلك بنفسك:
Dim a as MyClass = veryLongVariableName
Dim b as MyOtherClass = datasetVeryLongVariableName
a.Id = b.Id
a.Something = b.Something