แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | C # | C ++ |
---|---|---|
รวบรวมเป็น | CLR | รหัสเครื่อง |
จัดการหน่วยความจำได้ | อัตโนมัติ | ด้วยมือ |
การใช้พอยน์เตอร์ | ไม่ได้รับอนุญาต | ได้รับอนุญาต |
ว่าจ้างเมื่อวันที่ | แพลตฟอร์ม Windows ส่วนใหญ่ | แพลตฟอร์มใดก็ได้ |
การประยุกต์ใช้งาน | แอปพลิเคชั่นคอนโซล windows ASP.NET และอุปกรณ์พกพา | แอปพลิเคชันคอนโซลแบบสแตนด์อโลน |
การเข้ารหัส | มุ่งเป้าไปที่ระบบปฏิบัติการ Windows | จะทำสำหรับแพลตฟอร์มใด ๆ |
ความเร็ว | ช้าลง | เร็วกว่าเพราะเป็นภาษาที่มีน้ำหนักเบา |
ความหมายของ C #
การเขียนโปรแกรมภาษา C # เป็นภาษาการเขียนโปรแกรมเชิงวัตถุซึ่งเกี่ยวข้องโดยตรงกับรุ่นก่อน C ++ และ C มันถูกพัฒนาโดย Anders Hejlsberg ในปี 2000 วัตถุประสงค์หลักในการสร้าง C # คือการเอาชนะข้อ จำกัด ของ java แม้ว่า มันมีการพัฒนาผ่าน C เนื่องจาก Java ไม่ได้มีการทำงานร่วมกันข้ามภาษาในคำอื่น ๆ java ไม่สามารถเรียกใช้โปรแกรมที่เขียนในภาษาโปรแกรมหนึ่งด้วยโปรแกรมที่สร้างขึ้นในภาษาการเขียนโปรแกรมอื่น ๆ ประการที่สอง Java ไม่ได้ให้การรวมเต็มรูปแบบกับแพลตฟอร์ม windows
Java เป็นภาษาที่ไม่ดีสำหรับ C # C # เป็นภาษามาตรฐานของแพลตฟอร์ม. NET ซึ่งใช้สภาพแวดล้อม CLI (Common Language Interface) เพื่อทำให้โปรแกรมพกพาได้
C # เกี่ยวข้องกับคุณสมบัติต่าง ๆ เช่นการรวบรวมขยะอัตโนมัติความปลอดภัยของประเภทการสนับสนุนการกำหนดเวอร์ชันผู้ได้รับมอบหมายและกิจกรรมบริการเว็บการชกมวยและการเลิกทำและการเข้าถึงข้อมูลสมาชิก
ลักษณะของ C #
- ความเรียบง่าย : C # นั้นง่ายในแง่ของการใช้ตัวดำเนินการและแยกประเภทข้อมูลบูลีนและจำนวนเต็มอย่างสมบูรณ์
- ความเข้ากันได้ : C # ให้การทำงานร่วมกันภายในภาษาแพลตฟอร์ม. NET โดยการบังคับใช้ข้อกำหนดภาษาทั่วไป
- ความสอดคล้อง : ระบบประเภทรวมได้รับการสนับสนุนโดย C # เพื่อลบปัญหาของช่วงตัวแปรของประเภทจำนวนเต็ม มันถือว่าทุกประเภทเป็นวัตถุ
- Object-Oriented : เป็น object-oriented ทั้งหมดโดยที่ทุกอย่างเป็นอ็อบเจกต์แทนที่จะเป็นฟังก์ชันระดับโลก, ตัวแปรและค่าคงที่
- ประเภทความปลอดภัย : มันรวมมาตรการ ความปลอดภัย หลายประเภทเช่นวัตถุและอาร์เรย์ที่จัดสรรแบบไดนามิกจะเริ่มต้นให้เป็นศูนย์การใช้งานของตัวแปร uninitialized ไม่ได้รับอนุญาตการตรวจสอบช่วงอัตโนมัติสำหรับอาร์เรย์ไม่อนุญาต cast cast ที่ไม่ปลอดภัย
- เวอร์ชัน : เปิดใช้งานโมดูลซอฟต์แวร์เวอร์ชันใหม่เพื่อให้เข้ากันได้กับแอพพลิเคชั่นที่มีอยู่แล้ว
- ความยืดหยุ่น : อย่างไรก็ตามพอยน์เตอร์ไม่ได้รับการสนับสนุนจาก C # แต่ตรวจสอบได้ว่าสามารถใช้คลาสและวิธีการที่ไม่ปลอดภัยได้
- ความสามารถในการใช้งานร่วม กัน: C # ใช้วัตถุ COM และทำให้โปรแกรมเรียก API ดั้งเดิมใด ๆ
คำจำกัดความของ C ++
ภาษาโปรแกรม C ++ เกิดขึ้นในช่วงปี 1980 ที่ AT&T Bell Laboratories โดย Bjarne Stroustrup รุ่นนี้เป็นที่รู้จักกันในตอนแรกว่า "C กับคลาส" เนื่องจาก C ++ เป็นภาษาเชิงวัตถุ แต่ยังรองรับบางประเภทดั้งเดิม C ++ มาจากภาษา C และถือคุณสมบัติ "ใกล้กับปัญหา" เช่นเดียวกับคุณสมบัติ "ใกล้กับเครื่อง" ซึ่งเก็บรักษาไว้โดยภาษา C
ไวยากรณ์ของ C ++ คล้ายกับภาษา C แต่แตกต่างอย่างสิ้นเชิงเมื่อเทียบกับ C # มีความยืดหยุ่นและมุ่งเน้นไปที่ประสิทธิภาพรันไทม์และความหมายที่สอดคล้องกัน
มีคุณสมบัติหลายอย่างของ C ++ ที่ถูกทิ้งใน C # ตัวอย่างเช่นการใช้ Macros, การสืบทอดหลาย ๆ, พอยน์เตอร์, เทมเพลต, คำสั่ง typedef, ตัวแปรทั่วโลก, ฟังก์ชั่นสมาชิกคงที่หรือพารามิเตอร์
ลักษณะของ C ++
- ความสามารถในการพกพา : เมื่อเราเปรียบเทียบความสะดวกในการพกพา C ++ กับ C # คุณสามารถเรียกใช้รหัสบนเครื่องที่ใช้ระบบปฏิบัติการเนทีฟ แต่ไม่ใช่ในกรณี C #
- การพึ่งพาแพลตฟอร์ม : C ++ เป็นภาษาที่ขึ้นกับแพลตฟอร์มซึ่งโปรแกรมที่เขียนในระบบปฏิบัติการไม่สามารถดำเนินการในระบบปฏิบัติการอื่น
- ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่: อักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็กได้รับการจัดการในลักษณะที่แตกต่างกัน
- Compiler-based : C ++ ถูกกล่าวถึงว่าเป็นภาษาที่คอมไพล์เพราะมันไม่ได้รันโค้ดใด ๆ โดยไม่ต้องคอมไพล์
- อิงตามไวยากรณ์ : กฎของภาษาการเขียนโปรแกรมมีการปฏิบัติตามอย่างเคร่งครัด
- พอยน์เตอร์ : ซึ่งแตกต่างจาก C # C ++ อนุญาตให้ใช้พ อยน์เตอร์ ได้
ความแตกต่างที่สำคัญระหว่าง C # และ C ++
- รหัส C # จะถูกคอมไพล์ครั้งแรกกับ CLR (Common Language Runtime) ซึ่งถูกตีความโดย. NET Framework ในทางตรงกันข้าม C ++ จะรวบรวมรหัสลงในรหัสเครื่องโดยตรง
- ในฐานะที่เป็น C # รันบนเครื่องเสมือนซึ่งเกี่ยวข้องกับการจัดการหน่วยความจำโดยอัตโนมัติ ในทางกลับกัน C ++ จัดระเบียบหน่วยความจำด้วยตนเอง
- C ++ อนุญาตให้ใช้พอยน์เตอร์ในขณะที่ใน C # พอยน์เตอร์มีแนวโน้มที่จะถูกใช้น้อยลงแทนที่จะฝึกคลาสที่ไม่ปลอดภัย
- C # ถูกใช้อย่างมากในสภาพแวดล้อมของ windows เทียบกับ C ++ ได้รับการออกแบบสำหรับระบบที่ใช้ Unix แต่ตอนนี้สามารถใช้กับแพลตฟอร์มใด ๆ
- แอปพลิเคชันของ C # เกี่ยวข้องกับแอปพลิเคชันบนเว็บเดสก์ท็อปและอุปกรณ์พกพา ในทางตรงกันข้ามจุดประสงค์เดียวทั้งหมดของ C ++ คือการสร้างแอปพลิเคชันคอนโซลแบบสแตนด์อะโลน
- รหัส C ++ นั้นเร็วกว่าเนื่องจากไม่ได้ใช้ไลบรารีจำนวนมาก ในทางกลับกัน C # จะช้ากว่าเมื่อสร้างโอเวอร์เฮดและใช้ไลบรารีจำนวนมากเช่น java
ข้อสรุป
C ++ นั้นถูกใช้เป็นหลักเมื่อประสิทธิภาพเป็นสิ่งที่สำคัญที่สุดของโปรแกรมเมอร์ในขณะที่ C # แม้แต่ผู้เริ่มต้นก็สามารถพัฒนาแอพพลิเคชั่นบนเว็บมือถือและเดสก์ท็อปได้อย่างง่ายดาย C # นั้นง่ายต่อการเรียนรู้และภาษาที่ได้รับการป้องกันในแง่ของการก่อให้เกิดอันตรายต่อระบบปฏิบัติการในทางกลับกัน C ++ นั้นเปิดกว้างมากขึ้นและอนุญาตให้โปรแกรมเมอร์ทำสิ่งใดกับไวยากรณ์ที่ให้ไว้