بسم الله الرحمن الرحيم
ملاحظة:( أرجو من الأخ رامي العيساوي أن لا يعارض لإدراجي هذا الموضوع هنا في قسم جافا
وذلك لأني لاحظت أن معظم المبتدئين المشاركين في منتدى جافا يسألون نفس السؤال :
أيهما أفضل جافا أم سي شارب.. )انتهت الملاحظة
لقد قمت خلال الشهر الماضي بدراسة لغة سي شارب ,ولقد دهشت لمرونة هذه اللغة وسهولة تعلمها من كتاب
فهي تحوي نفس مفاهيم
OOP that exists in java
مع اختلاف بسيط في بعض أسماء الطرق و كلمات اللغة
و بالرغم من تشجيعي الشديد للغة جافا سابقاً ,إلا أنني قد أنحازالآن لسي شارب لما وجدته فيهامن تسهيلات تقدمها بيئة العمل
Visual stidio.net
في كتابة الكود الّذي كنت أضيع الكثير من وقتي في كتابته في جافا ,و خصوصاً ما يتعلق بتصميم النماذج
,والأجمل من ذلك أن سي شارب تتميز أيضاً بالمحمولية بين قواعد العمل المختلفة
لذلك أنصح أي مبرمج جافا أن يبادر الان و يكسب تعلم لغةً سي شارب كلغة إضافية , فلغة جافا تشكل قاعدة قوية لتسهيل تعلم لغة سي شارب
فابشروا مبرمجي جافا فأنتم للتو قاعدة متينة لأن تصبحوا مبرمجي سي شارب ...
و من خلال قرائتي لاحظت بعض الفوارق الأساسية بين لغة جافا و لغة سي شارب التي تسهل عليكم الانتقال لكتابة برامج بلغة سي شارب ألا وهي :
لغة جافا
Import
لغة سي شارب
using
--------------------------
لغة سي شارب
Console.WriteLine( string)
لغة جافا
System.out.println(String )
--------------------------
لغة سي شارب
قواعد تسمية المتحولات هي:
Start with @ or letter or _
وتتمة أسم المتحول يمكن أن تكون
letter or _ or number
لغة جافا
قواعد تسمية المتحولات هي:
Start with $ or letter or _
وتتمة أسم المتحول يمكن أن تكون
$ or letter or _ or number
--------------------------
لغة سي شارب
ليس بالضرورة أن يكون اسم الملف من اسم الصف ذو الواصف
Public
و يجوز أن يوجد صفوف آخرى على مستوى الملف له الواصف السابق
لغة جافا
بالضرورة يجب أن يكون اسم الملف من اسم الصف ذو الواصف
Public
ولا يجوز أن يوجد أي صف آخر على مستوى الملف له الواصف السابق
--------------------------
لغة سي شارب
نقطة الدخول للملف لهاأحد التوقيعات التالية:
static void main(String [] variable)
static int main(String [] variable)
static void main( )
static int main( )
لغة جافا
نقطة الدخول للملف لها التوقيع التالي:
Public static void main(String [] variable)
--------------------------
لغة سي شارب
نظام
Garbage collector clr
لغة جافا
نظام
Garbage collector gc
--------------------------
لغة سي شارب
الصف المحصور استخدامه ضمن الحزمة يكون له الواصف الإفتراضي الّذي يمكن أن لا يكتب
أو نكتب
internal
لغة جافا
الصف المحصور استخدامه ضمن الحزمة يكون له الواصف الإفتراضي الّذي لا يكتب
--------------------------
لغة سي شارب
الإشياء ذات الواصف المحمي يمكن الوصول إليهافقط من ورثة الصف الّذي يحوي هذه الواصفات
لغة جافا
الإشياء ذات الواصف المحمي يمكن الوصول إليها من الحزمة التي تكون فيها
--------------------------
لغة سي شارب
sealed class
لغة جافا
Final class
--------------------------
لغة سي شارب
class Sun : Father ,Interface
لغة جافا
class Sun extends Father implements Interface
--------------------------
لغة سي شارب
base ( )
لغة جافا
super( )
--------------------------
لغة سي شارب
المتحولات التي ليس بجوارها واصفات يعتبر واصفها هو الواصف الخاص
لغة جافا
المتحولات التي ليس بجوارها واصفات يعتبر واصفها هو الواصف الافتراضي
--------------------------
لغة سي شارب
عند القيام بتجاوزالطريقة
ToString
نكتب
public override string ToString( ){…}
لغة جافا
عند القيام بتجاوزالطريقة
toString
نكتب
public string toString( ){…}
--------------------------
لغة سي شارب
Checked Exception
المترجم لا يجبرنادوماً على وضع الكود المناسب لها
لغة جافا
يوجد مفهوم ل
Checked Exception
و المترجم يجبرنا على وضع الكود المناسب لها
--------------------------
لغة سي شارب
يتم معالجة الأحداث ا باستعمال ال
Handler
لغة جافا
يتم معالجة الأحداث باستعمال ال
Listener
--------------------------
لغة سي شارب
الواصف
لمتحول تكافىء const
لغة جافا في
الواصف
final
--------------------------
لغة سي شارب
لايمكن للواجهات أن تحوي ثوابت
واستعيض بالنمط المعدود لتوفير الثوابت
Enums
لغة جافا
يمكن للواجهات أن تحوي ثوابت
--------------------------
لغة سي شارب
يمكن التحويل بشكل مباشر وصريح من النمط
char → ushort
لغة جافا
لا يمكن التحويل بشكل مباشر وصريح من النمط
char → short
--------------------------
لغة سي شارب
عندما نريد الرسم نعرف الطريقة
protected override void OnPaint
(PaintEventArgs g ) { …}
لغة جافا
عندما نريد الرسم نعرف الطريقة
public void paint (Graphics g ) { …}
--------------------------
لغة سي شارب
الثوابت التي تتقيلها حلقة
switch
هي من نمط
string
أو من نمط
int
أو ما يقيل التحويل المباشر له
لغة جافا
الثوابت التي تتقيلها حلقة
Switch
هي من نمط
int
أو ما يقيل التحويل المباشر له
------------------------------------------------------------
وللراغبين بمعرفة المزيد عن هذا الموضوع .فأنا دوماً موجود
وشكراً لكم
