03-10-12, 01:40 AM
كاتب الموضوع : النبهاني
السطر يصبح سطرين بدون "_" : ذكاء ام تشويه للغة ؟منذ البداية ، كان الفرق الجوهري في الصيغة Syntax بين لغتنا الحبيبة Visual Basic وكل اخواتها من عائلة Basic – واللغات الاخرى كـ C/C++,Java وغيرها ، هو طريقة التعدد في كتابة السطر الواحد في سطور مختلفه ، فلا حاجه الى انهاء كل سطر بالعلامة " ; " لكي يعرف سيادة المترجم Compiler بأن السطر انتهى هنا ، بينما في Visual Basic فلا داعي لذلك ، كل سطر ينتهي بنفسه افتراضيا طالما لم ينته بالعلامة "_" والتي تدل على ان السطر مقسم على اسطر متعددة كهذا الكود مثلا :
كود :
[align=left][FONT=Consolas]x = x ^ 2 + 3 * x _[/FONT]
[FONT=Consolas]+ 3[/FONT][/align]
كود :
[align=left][FONT=Consolas]x =[/FONT]
[FONT=Consolas]x ^ 2 + 3 * x + 3[/FONT][/align]
كود :
[align=left][FONT=Consolas]<Extension()>[/FONT]
[FONT=Consolas][color=blue]Function[/color] FilterByCountry([/FONT]
[FONT=Consolas][color=blue]ByVal[/color] customers [color=blue]As[/color] IEnumerable([color=blue]Of[/color] Customer),[/FONT]
[FONT=Consolas][color=blue]ByVal[/color] country [color=blue]As[/color] [color=blue]String[/color]) [color=blue]As[/color] IEnumerable([color=blue]Of[/color] Customer)[/FONT]
[FONT=Consolas][color=blue]Dim[/color] query =[/FONT]
[FONT=Consolas][color=blue]From[/color] c [color=blue]In[/color] customers[/FONT]
[FONT=Consolas][color=blue]Where[/color] c.Country = country[/FONT]
[FONT=Consolas][color=blue]Select[/color] [color=#6464b9]<[/color][color=#844646]Customer[/color][color=#6464b9]>[/color][/FONT]
[color=#555555][FONT=Consolas]<%=[/FONT][/color]
[FONT=Consolas]c.Name &[/FONT]
[FONT=Consolas][color=#a31515]","[/color] &[/FONT]
[FONT=Consolas]c.Country[/FONT]
[FONT=Consolas][color=#555555]%>[/color][/FONT]
[color=#6464b9][FONT=Consolas]</[/FONT][/color][color=#844646][FONT=Consolas]Customer[/FONT][/color][color=#6464b9][FONT=Consolas]>[/FONT][/color]
[FONT=Consolas][color=blue]Return[/color] query[/FONT]
[FONT=Consolas][color=blue]End[/color] [color=blue]Function[/color][/FONT][/align]
اذا ماذا عملت مايكروسوفت في هذا الاصدار ؟ كما يتضح من الكود السابق ، اصبح بإمكانك ان تتغاضى عن ادراج العلامة "_" في الحالات التالية :
- بعد المواصفات Attributes كما يتضح في السطر الاول
- بعد علامة ")" عند تمرير قيم الباراميترات .
- بعد علامة "," عند تمرير قيم الباراميترات .
- بعد معامل المساواة "="
- قبل علامة ")" .
- بعد علامة "<%=" وقبل علامة "%>" في صيغ الاستعلامات Queries Expressions .
- بعد المعامل "& " في استعلامات XML .
قد يبدو هذا كثيرا ، لكن الامر لن ينتهي عند هذا الحد ، فالمزيد من الحالات التي يمكنك فيها توديع علامة المتابعة "_" موجوده وهي جاهزه وملخصه في الرابط التالي :
http://msdn.microsoft.com/en-us/library/865x40k4.aspx
برمجة سعيدة مع Implicit Line Continuation لكن هل تم تشويه اكواد Visual Basic بهذا الشكل ؟ فعلا هي و Lambda Expressions و LINQ غيرت الكثير من معالم الاكواد !