คุณสมบัติของ C++ ที่ขาดหายไปใน C#
C# และ C++ แตกต่างกันในหลายด้าน ด้านล่างคือคุณสมบัติสำคัญของ C++ ที่ C# ไม่มี (หรือทำงานต่างไป)
| คุณสมบัติ | C++ | C# |
|---|---|---|
| Multiple Inheritance | รองรับโดยตรง (หลาย Base Class) | ไม่รองรับ (ใช้ Interface แทน) |
| Manual Memory Management | จัดการหน่วยความจำเอง (new/delete) | Garbage Collector จัดการอัตโนมัติ |
| Standalone Applications | คอมไพล์เป็น Native Executable ได้โดยตรง | ต้องมี .NET Runtime (CLR) ติดตั้ง |
| Switch on String | ไม่รองรับโดยตรง (ใช้ string compare) | รองรับ Switch บน String ตั้งแต่ C# 7.0+ |
| Cross-platform Native | รันบน Windows, Mac, Linux, UNIX ได้ทุกแพลตฟอร์ม | เดิมแค่ Windows แต่ตอนนี้ .NET Core/5+ รัน Cross-platform ได้แล้ว |
| Pointers & Unsafe Code | ใช้ Pointer ได้อิสระ | รองรับเฉพาะใน unsafe context เท่านั้น |
| Deterministic Destruction | Destructor เรียกทันทีเมื่อ Out of scope | Non-deterministic (ขึ้นอยู่กับ GC) ใช้ IDisposable แทน |
| Templates | Templates (Compile-time polymorphism) | Generics (Runtime type substitution) |
สรุป
- C# เน้นความปลอดภัย ความง่าย และ Productivity
- C++ เน้น Control ใกล้ Hardware และ Performance ความยืดหยุ่นสูงสุด
- ปัจจุบัน .NET 6+ รองรับ Cross-platform จริง ทำให้ช่องว่างลดลงมาก