למה להמציא את הגלגל מחדש ?
מי אמר שמתגאים בו כל כך ? דבר שני ל-#C יש יכולות ש- Java בעצם בשליחו הצידה כשבנו את השפה, דבר שני #C מקומפלת ולכן יש לה רמות ביצועים יותר גבוהים, #C משלבת בתוכה שלושה שפות וזה נפלא, כן נכון #C לקחה הרבה מהיכולות של Java אבל זה לא מה שעשה אותה לכזאת נפלאה, יש לה את הפשטנות של Java, הגמישות של ++C והתייחסות וויזואלית של Visual Basic מה רע בזה ? ב- Java אין לך שליטה מלאה על הזכרון גם ב- #C אבל לפחות יש לך יכולת התייחסות לאובייקטים המושמדים, #C מביאה עמה לפחות 7 יתרונות בולטים על פני כל שפה: * פשטנות חלק מהרכיבים שהוטמעו ב- ++C היו מאוד קשים ללמידה אז עדנו את המצב. * חדשנות יכולת של הוספת סוגי נתונים מתואמים אישית, טיפול בחריגים יוצאת מן-הכלל יכולת להצהרת הרשאות נתונים בקוד ושליטה במרחב ה- Assembly של הקוד. * שפה מוכוונות אובייקטים כל דבר כמוס במחלקות וזה הופך אותה Pure Object Oriented שפה, כל דבר צריך להיות מוצהר ובטוח, נציגים אשר נותנים לנו שימוש ב"מצביעים בטוחים" ועוד. * סוגי נתונים מורשים (type-safe) ב- ++C יכלנו לבצע פעולות חסרות הגיון כמו לשייך *int ל- *double ואם מרחב הזיכרון איפשר זאת והתוכנית התקמפלה זה עבד, דבר זה הוסר מפני דברים כאלו יכולים להוות בעיה ומורכבות גם בטיפול הקוד וגם למערכת ההפעלה ולמרחב הזיכרון אשר יכול להיות ולגרום לאי-יציבות של התוכנה. - לא ניתן להשתמש במשתנה לא מאותחל למטרות פעולות חישוב וכו' - אינה מאפשרת שיוך לא בטוח כמו שיוך של ערך לאובייקט כמו שיוך של כמו שיוך של double או integer לסוג reference כגון object אם אנו מנסים לבצע פעולת downcast המהדר בודק את פעולת השיוך - בדיקת טווח אלמנטים במערך לא ניתם להשתמש באלמנט n במערך שמכיל n-1 דבר המסייע למניעת זיכרון שלא הוקצה - לא ניתן לאשפר לפעולות ארתמטיות לגרום לגליקה מטווח התוצאה של סוג הנתונים. * עבודה במהדורות קוד #C מנסה לפתור את הבעיות הקשורות לרכיבי ה- DLL הנובעות משיתוף של אותם רכיבים לתוכנות רבות. * תאימות השפה מאפשרת לגשת לממשקי התכנות השונים (API), החדש שבהם הוא CLS ממשק תכנות זה מגדיר את תקן תפעוליות שיתופית (interoperation) בית שפות תכנות שונות, הין שפות תכנות העומדות בדרישות המקיימות את תקן CLR, ממשק התכנות מאפשר לנו לכתוב מחלקה ב- Visusl Baic.NET או Java ולגשת אליו מקוד של #C כל עוד עמדנות בתקן של Common Language Runtime) CLR). * גמישות ב- #C יש ביכולתנו לעבור למצב של קוד לא בטוח ע"י הגדרת מחלקה או פונקצייה כ- unsafe ולאחר מכן תוכל להשתמש בקוד שכללי השפה אינם מתירים כגון מצביעים וכו' בדיוק כמו ב- ++C

.