لماذا لا يمكنك تحرير ومواصلة تصحيح الأخطاء عندما يكون هناك تعبير لامدا في الطريقة؟

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

سؤال

رأيت أنه قال في أسئلة أخرى أن بناء جملة استفسار LINQ يتجمع إلى Lambda.

فلماذا لا يمكنك التعديل والاستمرار عندما يكون هناك تعبير لامدا في الطريقة، بينما تتمكن من تدوين الاستعلام الذي يمكنك ذلك؟

ما الأكثر ثقة، ويحققني بشكل خطير النظر في التحول لاستخدام تسريات الاستعلام في كل مكان, ، هو أنه حتى إذا لم يكن الرمز الخاص بك في Lambda، ولكن هناك Lambda في مكان آخر في نفس الطريقة، لا يمكنك التحرير والاستمرار! هذا، مثل الألم غير المبرط الذي تم إنشاؤه على المطورين غير المباشرين!

هل كانت مفيدة؟

المحلول

التحرير والمتابعة قادرة على تغيير تطبيقات الأسلوب "Live"، ولكن ليس الحقول في أنواع.

يمكن أن ينتهي تعبيرات Lambda (والطرق المجهولة) بإنشاء أنواعها الخاصة عند التقاط المتغيرات. تغيير تعبير LambDA يمكن أن يغير الأنواع المعنية، والتي من شأنها كسر التعديل والمتابعة.

يبدو وكأنه ينبغي من الممكن إجراء تغييرات على التعليمات البرمجية التي لا تملك هذا التأثير، لكنني أظن أنها أسهل ببساطة منعها بالكامل - وهذا يعني أنك لا تفعل ذلك أيضا بداية إجراء تغييرات ثم ابحث عن أنك منعت نصف الطريق من خلال تغييرك.

(شخصيا أنا لست من محبي E & C في المقام الأول، لذلك لم ألا لاحظتها أبدا.)

نصائح أخرى

لا أعرف بالتأكيد، لكن تخميني هو التعقيد حول معرفة ما يجب تغييره عند وجود متغيرات محلية يتم رفعها إلى الفصول. أنا أظن أن معرفة التغييرات التي ستكون آمنة وما لن تعتبر تعقيدا وعرضا للخطأ للحصول على الحق في هذه المرحلة. تركز الأدوات في عام 2010 حول خيوط واجهة المستخدم الجديدة - ربما سنحصل عليه في الإصدار التالي.

لا أعرف ذلك بالتأكيد، لكنني أفترض أنه يجب القيام به بالطريقة التي يحول برنامج التحويل البرمجي تعبيرات Lambda التي تشكل عمليات إغلاق في فئات الترجمة التي تم إنشاؤها. ربما لا توجد طريقة (سهلة) لتطبيق التغييرات التي تم إجراؤها على التعليمات البرمجية المترجمة والحفاظ على الحالة الحالية.

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