ما هي أهم الاختلافات الوظيفية بين C# و VB.NET?

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

  •  08-06-2019
  •  | 
  •  

سؤال

بالتأكيد هناك فرق في الجملة, ولكن ما الهامة الأخرى الفروق موجودة ؟ هناك بعض الاختلافات ، أليس كذلك ؟

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

المحلول

المرتبطة مقارنات دقيق جدا ، ولكن بقدر ما الاختلافات الرئيسية وأود أن نلاحظ ما يلي:

  • C# لديها طرق مجهولةرموز هذه أيضا
  • C# وقد العائد الكلمة (مكرر بنات)VB11 وأضاف هذا
  • VB يدعم ضمني الربط المتأخر (ج# صريحة الربط المتأخر الآن عبر ديناميكية الكلمة)
  • VB يدعم XML حرفية
  • VB هو قضية حساسة
  • المزيد من خارج منطقة الجزاء مقتطفات الشفرة ل VB
  • المزيد من صندوق إعادة بيع ديون أدوات C#Visual Studio 2015 يوفر الآن نفسه إعادة بيع ديون أدوات لكل VB و C#.

في الأشياء MS يركز على لكل تختلف, لأن اثنين من لغات تستهدف قطاعات مختلفة جدا. هذا بلوق وظيفة وقد ملخص جيد من الجمهور المستهدف.فمن المحتمل ان يكون فكرة جيدة لتحديد الجمهور ، لأنها سوف تحدد ما هو نوع من الأدوات التي سوف تحصل من Microsoft.

نصائح أخرى

هذا الموضوع كان له الكثير من الوقت منذ ذلك الحين .Net 2.0 صدر.ترى هذا ويكيبيديا المقالة ملخص للقراءة.

هذا يمكن اعتبار الجملة, ولكن VB.NET هو حالة فيحساسة في حين C# هو حال الحساسة.

هذا جدا مرجعية شاملة.

منذ أفترض أنك يمكن أن جوجل لا أعتقد ارتباط إلى مواقع أكثر هو ما كنت أبحث عنه.

جوابي:اختيار قاعدة على تاريخ من المطورين.C# هو أكثر جافا مثل ، وربما C++ مثل.VB.NET كان من الأسهل بالنسبة المبرمجين VB, ولكن أعتقد أن هذا ليس حقا مشكلة بعد الآن شرط ليس هناك جديد .صافي المبرمجين القادمة من القديم VB.

رأيي هو ان VB هو أكثر إنتاجية ثم C#, يبدو أنها دائما إلى الأمام من حيث أدوات الإنتاجية (مثل intelisense), و أنصح vb على c# إلى شخص أن يسأل.بالطبع شخص يعرف انه يفضل c# لن أسأل و c# ربما هو الخيار الصحيح بالنسبة له.

على الرغم من أن بناء الجملة السكر في C#3 وقد دفعت حقا بار إلى الأمام, يجب أن أقول بعض Linq to XML الاشياء في VB.Net يبدو لطيفا جدا و يجعل معالجة معقدة متداخلة XML قليلا أكثر احتمالا.قليلا فقط.

واحد صارخ الفرق هو في كيفية التعامل مع أساليب الإرشاد (Vb.Net يسمح في الواقع شيئا C# لا - اجتياز نوع على امتداد الطريقة يتم تعريف المرجع): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

وبصرف النظر عن بناء الجملة ليست من ذلك بكثير أي أكثر من ذلك.كلاهما تجميع بالضبط نفس IL, حتى تتمكن من تجميع شيء VB و تعكس ذلك في C#.

معظم الاختلافات الظاهرة هي النحوي السكر.فعلى سبيل المثال VB يظهر دعم ديناميكية ، ولكن في الحقيقة هم مجرد ثابتة مثل C#'s - VB مترجم الأرقام منهم.

Visual Studio يتصرف بشكل مختلف مع VB مع C# - أنه يخفي الكثير من الوظائف ولكن يضيف خلفية تجميع (كبيرة للمشاريع الصغيرة الموارد القص الكبيرة) و أفضل مقتطف الدعم.

مع المزيد والمزيد من المترجم 'السحر' في C#3 VB.Net حقا قد تخلفت.الشيء الوحيد VB الآن أن C# لا هو handles الكلمة - و هذا من للنقاش فائدة.

@توم - حقا مفيدة, ولكن قليلا من التاريخ - VB.Net الآن يدعم مستندات XML جدا مع '''

@لوقا - VB.Net لا يكون حالا الطرق, ولكن الآن دعم lambdas.

أكبر الفرق في رأيي هو القدرة على كتابة تعليمات برمجية غير آمنة في C#.

على الرغم من أن VB.NET يدعم محاولة صيد نوع معالجة الاستثناء ، فإنه لا يزال لديه شيء مماثل VB6 على خطأ.على خطأ يمكن لإساءات بالغة ، وفي الغالبية العظمى من الحالات ، حاول... الصيد هو الآن أفضل ؛ ولكن على خطأ يمكن أن تكون مفيدة عند التعامل مع COM مهلة العمليات حيث الخطأ يمكن أن يكون محاصرا ، فك الشفرة النهائية "حاول مرة أخرى" هو بسيط سطر واحد.يمكنك أن تفعل الشيء نفسه مع محاولة صيد لكن رمز الكثير مسير.

هذا الموضوع باختصار في ويكيبيديا هاردينغ.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

مجرد الذهاب من خلال وتقديم الملاحظات الخاصة بك على ذلك.

عندما يحصل IL كل بت فقط.أن حالة عدم الاكتراث هو مجرد precompiler تمر.ولكن التوافق العام في الآراء هو vb أكثر مطول.إذا كان يمكنك كتابة c# لماذا لا حفظ عينيك و اليدين و كتابة كمية أصغر من التعليمات البرمجية إلى أن تفعل الشيء نفسه.

واحد صارخ الفرق هو في كيفية التعامل مع أساليب الإرشاد (Vb.Net يسمح في الواقع شيئا C# لا - اجتياز نوع على امتداد الطريقة يتم تعريف المرجع): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

سكوت Hanselman كتب مؤخرا مقالة مثيرة للاهتمام المتناقضة فار و خافت: العودة إلى الأساسيات:فار != خافت

نعم VB.NET إصلاح معظم VB6 مشاكل وجعله السليم OOP اللغة - أي.مماثلة في قدرات C#.AlthougnI تميل إلى تفضيل C#, أنا لا أجد القديم VB على خطأ بناء مفيدة للتعامل مع interop COM مهلة.ما استخدم بحكمة وإن كان على خطأ بسهولة إساءة!!

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