สารบัญ[ซ่อน][แสดง]
- 1. C# คืออะไรกันแน่?
- 2. C# แตกต่างจาก C อย่างไร
- 3. คลาสคืออะไรกันแน่?
- 4. วัตถุคืออะไรกันแน่?
- 5. อะไรคือความแตกต่างระหว่างคำว่า คงที่ สาธารณะ และ โมฆะ?
- 6. กำหนดตัวสร้าง
- 7. C# คืออะไรในการเก็บขยะ?
- 8. โครงสร้างในภาษา C# หมายถึงอะไรกันแน่?
- 9. โค้ด C# ถูกคอมไพล์อย่างไร?
- 10. อธิบายคลาส C# ที่แตกต่างกันอย่างชัดเจน
- 11. Jagged Arrays คืออะไรกันแน่?
- 12. อะไรคือความแตกต่างระหว่างพารามิเตอร์ out และ ref?
- 13. ในภาษา C# ตัวทำลายคืออะไร?
- 14. ในภาษา C# ตัวทำดัชนีคืออะไร?
- 15. อะไรคือความแตกต่างระหว่างรหัสที่มีการจัดการและไม่มีการจัดการ?
- 16. อธิบายการทำให้เป็นอนุกรม
- 17. ใน C# ฟิลด์และคุณสมบัติแตกต่างกันอย่างไร
- 18. คุณจะอธิบายการใช้คำสั่งในภาษา C# อย่างละเอียดได้อย่างไร?
- 19. คุณจะใช้อินเทอร์เฟซจำนวนมากที่มีชื่อเมธอดเดียวกันในคลาสเดียวกันได้อย่างไร
- 20. ใน C# อะไรคือความแตกต่างระหว่าง Task และ Thread?
- 21. ฟังก์ชั่นจบในภาษา C# คืออะไร?
- 22. แยกความแตกต่างระหว่างจบบล็อกและจบ
- 23. อธิบาย C# dispose of method อย่างละเอียด
- 24. วิธีการโอเวอร์โหลดของ C# คืออะไร ชี้แจง
- 25. อะไรคือความแตกต่างระหว่างค่าอ่านอย่างเดียวและค่าคงที่?
- 26. User Control และ Custom Control คืออะไร?
- 27. ใน C# ผู้รับมอบสิทธิ์แบบหลายผู้รับคืออะไร
- 28. การรวมวัตถุใน C# คืออะไร?
- 29. generics ใน C#.NET คืออะไรกันแน่?
- 30. เป็นไปได้ไหมที่จะแทนที่เมธอดเสมือนส่วนตัว?
- 31. แยกความแตกต่างระหว่าง method overloading และ method overriding ใน C# อย่างไร?
- 32. ใน C# อะไรคือความแตกต่างระหว่าง String และ StringBuilder?
- 33. ผู้แทนคืออะไรกันแน่?
- 34. เมื่อใดที่คุณควรใช้มัลติเธรดใน C# และเมื่อใดที่คุณควรหลีกเลี่ยง
- 35. ใน C# ผู้รับมอบสิทธิ์แบบหลายผู้รับคืออะไร
- 36. ในภาษา C# อะไรคือความแตกต่างระหว่างการโยงช่วงหลังและการผูกช่วงต้น?
- 37. แยกความแตกต่างระหว่าง Directcast และ Ctype?
- 38. HashSet ใช้ใน C# อย่างไร
- 39. โปรดอธิบายการรวมเธรดใน C#
- 40. อะไรคือความแตกต่างระหว่างคำหลัก Const และ ReadOnly ใน C#?
- 41. คุณสามารถให้รายละเอียดอะไรเกี่ยวกับไฟล์ C# XSD ได้บ้าง
- 42. คุณสมบัติ Get and Set Accessor มีความหมายกับคุณอย่างไร?
- 43. การฉีดพึ่งพาใน C # คืออะไร?
- สรุป
C# (เดิมเรียกว่า C Sharp) เป็นภาษาโปรแกรมเชิงวัตถุที่นักพัฒนาใช้บ่อยในการทำกิจกรรมต่างๆ และบรรลุเป้าหมายต่างๆ
ภาษาโปรแกรมเชิงวัตถุ เช่น C++, Python และ Java มีหลากหลายรสชาติ ภาษาการเขียนโปรแกรมเหล่านี้ได้รับการออกแบบให้ทำงานภายในกรอบงานที่กำหนด ในทำนองเดียวกัน C# ถูกสร้างและพัฒนาสำหรับเฟรมเวิร์กเฉพาะ ซึ่งก็คือ NET
.NET framework ถูกสร้างขึ้นโดย ไมโครซอฟท์. มีแพลตฟอร์มขนาดใหญ่สำหรับการพัฒนาแอปพลิเคชัน การประกาศ คำแนะนำแอปพลิเคชัน และอื่นๆ C# สามารถใช้ในการพัฒนาเว็บ, เกม, แอปพลิเคชันมือถือ, แอปพลิเคชัน windows และโครงการอื่นๆ ที่คล้ายกัน
ด้วยข้อได้เปรียบดังกล่าว การใช้งาน C# จึงขยายตัว และความต้องการผู้เชี่ยวชาญที่สามารถใช้งานได้อย่างแม่นยำก็เพิ่มขึ้นเป็นสองเท่า เนื่องจาก C# เป็นที่นิยมมาก ภาษาโปรแกรมบริษัทขนาดใหญ่และขนาดเล็กจำนวนมากใช้ผลิตภัณฑ์ของตนเป็นหลัก
ดังนั้น ฝึกฝนคำถาม C# ระดับพื้นฐานและระดับสูงเพื่อเอาชนะการสัมภาษณ์
1. C# คืออะไรกันแน่?
Microsoft C# เป็นแบบร่วมสมัย ใช้งานทั่วไป การเขียนโปรแกรมเชิงวัตถุ ภาษา. C# มีไว้สำหรับ Common Language Infrastructure (CLI) ซึ่งประกอบด้วยรหัสปฏิบัติการและสภาพแวดล้อมรันไทม์ที่ช่วยให้สามารถใช้ภาษาระดับสูงจำนวนมากบนระบบคอมพิวเตอร์และสถาปัตยกรรมที่หลากหลาย
2. C# แตกต่างจาก C อย่างไร
C มักจะเรียกว่าภาษาเชิงขั้นตอน ในขณะที่ C# เป็นแบบเชิงวัตถุมากกว่า ข้อแตกต่างหลักคือ C# อนุญาตการรวบรวมขยะอัตโนมัติผ่าน Common Language Runtime (CLR) ในขณะที่ C ไม่อนุญาต C# ต้องใช้ .NET framework ในขณะที่ C เป็นภาษาที่ไม่ขึ้นกับแพลตฟอร์ม
3. คลาสคืออะไรกันแน่?
คลาสทำหน้าที่เป็นเทมเพลตสำหรับสร้างวัตถุ นอกจากเทคนิคแล้ว ยังมีคุณสมบัติ จากคลาสเดียว เราสามารถสร้างอินสแตนซ์ของออบเจกต์ได้หลายรายการ
4. วัตถุคืออะไรกันแน่?
ตัวอย่างคลาสที่เรียกว่าวัตถุคือวิธีที่เราเข้าถึงฟังก์ชันการทำงานของคลาส ในการสร้างวัตถุ เราสามารถใช้คีย์เวิร์ด "ใหม่" ฟังก์ชัน สมาชิกข้อมูล และพฤติกรรมของคลาสที่สร้างวัตถุในหน่วยความจำจะถูกเก็บไว้
5. อะไรคือความแตกต่างระหว่างคำว่า คงที่ สาธารณะ และ โมฆะ?
ทุกที่ในโปรแกรมสามารถเข้าถึงตัวแปรที่กำหนดโดยสาธารณะ ตัวแปรสแตติกสามารถเข้าถึงได้ทั่วโลกโดยไม่ต้องสร้างอินสแตนซ์ของคลาส ใน C# ตัวปรับแต่งประเภทที่เรียกว่า Void ใช้เพื่อระบุประเภทการส่งคืนของเมธอด
6. กำหนดตัวสร้าง
ตัวสร้างเป็นฟังก์ชันสมาชิกเฉพาะคลาส เมื่อวัตถุถูกสร้างขึ้น ตัวสร้างจะถูกเรียกโดยอัตโนมัติ คลาสสร้างค่าทั้งหมดของสมาชิกข้อมูลเมื่อมีการเริ่มต้น
7. C# คืออะไรในการเก็บขยะ?
กระบวนการล้างหน่วยความจำที่ถูกครอบครองโดยรายการที่ไม่ต้องการเรียกว่าการรวบรวมขยะ หน่วยความจำจำนวนหนึ่งถูกกำหนดให้กับคลาสออบเจกต์โดยอัตโนมัติเมื่อสร้างขึ้นในหน่วยความจำฮีป เมื่อคุณดำเนินการกับรายการเสร็จแล้ว พื้นที่หน่วยความจำที่เคยครอบครองอยู่จะสูญเปล่า หน่วยความจำจะต้องว่างขึ้น
8. โครงสร้างในภาษา C# หมายถึงอะไรกันแน่?
ในภาษา C# โครงสร้างคือประเภทข้อมูลที่ประกอบด้วยประเภทข้อมูลจำนวนมาก เช่น เมธอด ฟิลด์ ตัวสร้าง ค่าคงที่ คุณสมบัติ ตัวสร้างดัชนี ตัวดำเนินการ และแม้แต่โครงสร้างอื่นๆ โครงสร้างช่วยในการรวมข้อมูลหลายชนิดเป็นหน่วยเดียว ในลักษณะนี้จะคล้ายกับหลักสูตร โครงสร้างเป็นประเภทค่า ในขณะที่คลาสเป็นประเภทการอ้างอิง
9. โค้ด C# ถูกคอมไพล์อย่างไร?
เมื่อโครงการถูกสร้างขึ้น ซอร์สโค้ด C# จะถูกคอมไพล์เป็นภาษากลาง (IL) IL คือชุดคำสั่งที่สร้างรหัสเครื่องสำหรับการดำเนินการกับตัวประมวลผลของเครื่อง รหัสจะถูกส่งจากตัวประมวลผลล่วงหน้าไปยังคอมไพเลอร์ จากนั้นไปยังแอสเซมเบลอร์ และสุดท้ายไปยังตัวเชื่อมโยงในสี่ขั้นตอน
10. อธิบายคลาส C# ที่แตกต่างกันอย่างชัดเจน
- คงที่: เป็นประเภทของคลาสที่ไม่สามารถสร้างอินสแตนซ์ได้ ดังนั้นเราจึงไม่สามารถใช้คีย์เวิร์ดใหม่เพื่อสร้างวัตถุได้ แต่เราสามารถเรียกสมาชิกของคลาสได้โดยตรงโดยใช้ชื่อคลาส
- บทคัดย่อ: ในการกำหนดคลาสนามธรรม ให้ใช้คำหลักนามธรรม ไม่สามารถสร้างวัตถุสำหรับคลาสนามธรรมได้ จะต้องได้รับการสืบทอดในคลาสย่อยหากคุณต้องการใช้ คำจำกัดความง่ายๆ ของเมธอดนามธรรมและไม่เป็นนามธรรมได้รับอนุญาตภายในคลาสนามธรรม
- บางส่วน: คลาสนี้ทำให้คุณสามารถแยกคุณสมบัติ เมธอด และเหตุการณ์ออกเป็นไฟล์ต้นฉบับหลายไฟล์ ซึ่งจะรวมกันเป็นคลาสเดียวในเวลาสร้าง
- ปิดผนึก: คลาสที่ปิดผนึกไม่สามารถสืบทอดจากคลาสอื่นได้และมีลักษณะจำกัด ไม่สามารถเพิ่มตัวแก้ไขการเข้าถึงไปยังคลาสที่ปิดสนิทได้
11. Jagged Arrays คืออะไรกันแน่?
อาร์เรย์ที่มีองค์ประกอบอาร์เรย์เรียกว่าอาร์เรย์หยัก องค์ประกอบของ Jagged Array อาจมีรูปร่างและขนาดได้มากมาย
12. อะไรคือความแตกต่างระหว่างพารามิเตอร์ out และ ref?
เมื่อให้อาร์กิวเมนต์เป็นการอ้างอิง พารามิเตอร์จะต้องเริ่มต้นก่อนที่จะส่งผ่านไปยังเมธอด ในทางกลับกัน พารามิเตอร์ out ไม่จำเป็นต้องเริ่มต้นก่อนที่จะป้อนให้กับเมธอด
13. ในภาษา C# ตัวทำลายคืออะไร?
destructor เป็นเมธอดประเภทหนึ่งใน C# ที่เป็นส่วนหนึ่งของคลาส หน้าที่หลักของ destructor คือการลบอินสแตนซ์ของคลาสเมื่อไม่ต้องการอีกต่อไปเพื่อเพิ่มหน่วยความจำ ตัวทำลายบางครั้งเรียกว่าตัวจบ
14. ในภาษา C# ตัวทำดัชนีคืออะไร?
ตัวทำดัชนีใช้ใน C# เพื่อค้นหาอินสแตนซ์ของคลาสหรือโครงสร้าง ค่าที่ทำดัชนีจึงสามารถเข้าถึงได้เหมือนกับอาร์เรย์ แต่ไม่ต้องประกาศประเภทหรืออินสแตนซ์สมาชิกอย่างชัดเจน
15. อะไรคือความแตกต่างระหว่างรหัสที่มีการจัดการและไม่มีการจัดการ?
โค้ดที่มีการจัดการทำให้คุณสามารถรันโค้ดใน .NET framework บนสภาพแวดล้อมรันไทม์ CLR ที่มีการจัดการ
รหัสควบคุมดำเนินการในสภาพแวดล้อมรันไทม์ที่มีการจัดการแทนที่จะเป็นระบบปฏิบัติการ ให้บริการที่หลากหลาย เช่น การเก็บขยะ การจัดการข้อยกเว้น และอื่นๆ
รหัสที่ไม่มีการจัดการคือรหัสที่ไม่ได้รันบน CLR และทำงานนอกกรอบของ NET พวกเขาไม่ได้ให้บริการภาษาระดับสูง ดังนั้นจึงทำงานโดยไม่มีพวกเขา C ++ เป็นตัวอย่างหนึ่ง
16. อธิบายการทำให้เป็นอนุกรม
ต้องสร้างสตรีมของไบต์จากรายการเพื่อถ่ายโอนผ่านเครือข่าย การทำให้เป็นอนุกรมคือการแปลงรายการเป็นสตรีมของไบต์ ต้องใช้งานอินเทอร์เฟซที่ทำให้เป็นอนุกรมเพื่อให้รายการสามารถทำให้เป็นอนุกรมได้ สิ่งที่ตรงกันข้ามกับการสร้างวัตถุจากสตรีมของไบต์เรียกว่า de-serialization
17. ใน C# ฟิลด์และคุณสมบัติแตกต่างกันอย่างไร
ฟิลด์คือสมาชิกคลาสหรืออ็อบเจกต์ใดๆ ที่ทำหน้าที่เป็นตำแหน่งสำหรับจัดเก็บข้อมูล ในขณะที่พร็อพเพอร์ตี้เป็นสมาชิกคลาสที่มีเมธอดสำหรับการอ่าน เขียน และคำนวณค่าของฟิลด์ส่วนตัว
18. คุณจะอธิบายการใช้คำสั่งในภาษา C# อย่างละเอียดได้อย่างไร?
คำสั่ง using ใช้เพื่อจำกัดการใช้ทรัพยากรตั้งแต่หนึ่งอย่างขึ้นไปภายในแอปพลิเคชัน ทรัพยากรถูกใช้และปล่อยออกมาอย่างต่อเนื่อง
งานหลักของคำสั่งนี้คือการจัดการทรัพยากรที่ไม่ต้องการและปล่อยโดยอัตโนมัติ เมื่อออบเจกต์ที่ใช้ทรัพยากรถูกสร้างขึ้น ตรวจสอบให้แน่ใจว่าฟังก์ชันกำจัดออบเจกต์ถูกเรียกใช้เพื่อปลดปล่อยทรัพยากรที่อ็อบเจ็กต์นั้นต้องการ นี่คือจุดที่การใช้คำสั่งมีประโยชน์
19. คุณจะใช้อินเทอร์เฟซจำนวนมากที่มีชื่อเมธอดเดียวกันในคลาสเดียวกันได้อย่างไร
ในการปรับใช้หลายอินเทอร์เฟซด้วยชื่อเมธอดเดียวกัน ให้หลีกเลี่ยงการนำไปใช้ภายในเนื้อหาของฟังก์ชัน คุณจะระบุชื่อของอินเทอร์เฟซโดยตรงในเนื้อหาของเมธอดแทน คอมไพเลอร์จะรับรู้ว่ามีการอ้างอิงเมธอดใดของอินเตอร์เฟส เพื่อแก้ไขปัญหา
20. ใน C# อะไรคือความแตกต่างระหว่าง Task และ Thread?
เธรดคือเธรดระบบปฏิบัติการจริงที่มีทรัพยากรสแต็กและเคอร์เนลของตัวเอง เธรดให้การควบคุมมากที่สุด เธรดช่วยให้คุณสามารถยกเลิก (), ระงับ () หรือดำเนินการต่อ () สามารถสังเกตสถานะของเธรดหรือแอตทริบิวต์ เช่น ขนาดสแต็ก สถานะอพาร์ตเมนต์ และวัฒนธรรมได้ CLR เก็บกลุ่มของเธรดที่ห่อโดย ThreadPool
Task Parallel Library มีคลาสชื่อ Task ซึ่งแตกต่างจาก ThreadPool งานไม่มีเธรดระบบปฏิบัติการของตัวเอง งานจะถูกดำเนินการโดย TaskScheduler แม้ว่าตัวกำหนดตารางเวลาเริ่มต้นจะถูกดำเนินการโดย ThreadPool เป็นไปได้ที่จะได้รับการแจ้งเตือนเมื่องานเสร็จสิ้นและได้รับผลลัพธ์
21. ฟังก์ชั่นจบในภาษา C# คืออะไร?
คลาสออบเจกต์ที่ใช้สำหรับการดำเนินการล้างจะกำหนดฟังก์ชัน finalize () เมื่อไม่มีการใช้การอ้างอิงถึงวัตถุเป็นระยะเวลานาน ตัวรวบรวมขยะมักจะเรียกใช้ฟังก์ชันนี้
ตัวรวบรวมขยะจะปลดปล่อยทรัพยากรที่มีการควบคุมโดยอัตโนมัติ แต่ถ้าคุณต้องการปลดปล่อยทรัพยากรที่ไม่จำเป็น เช่น ตัวจัดการไฟล์ การเชื่อมต่อข้อมูล และอื่นๆ คุณต้องใช้ฟังก์ชันสรุปอย่างชัดเจน
22. แยกความแตกต่างระหว่างจบบล็อกและจบ
บล็อกสำเร็จรูปถูกเรียกใช้หลังจากบล็อก try-and-catch เสร็จสิ้น เนื่องจากจำเป็นสำหรับการจัดการข้อยกเว้น บล็อกของรหัสถูกดำเนินการโดยไม่คำนึงว่าพบข้อยกเว้นหรือไม่ รหัสของบล็อกโดยทั่วไปจะสะอาดกว่า
มีการเรียกใช้เมธอดสุดท้ายก่อนการรวบรวมขยะ ความรับผิดชอบหลักของเมธอดขั้นสุดท้ายคือการล้างโค้ดที่ไม่มีการจัดการ ซึ่งจะถูกเรียกใช้โดยอัตโนมัติทุกครั้งที่ไม่มีการเรียกใช้อินสแตนซ์ซ้ำ
23. อธิบาย C# dispose of method อย่างละเอียด
ฟังก์ชัน disposeof() ปลดปล่อยทรัพยากรที่ไม่ได้ใช้ของวัตถุ ทรัพยากรที่ไม่ได้ใช้ เช่น ไฟล์ การเชื่อมต่อข้อมูล และอื่นๆ ฟังก์ชันนี้ถูกระบุในอินเทอร์เฟซ IDisposable ซึ่งใช้งานโดยคลาสโดยการประกาศเนื้อหาอินเทอร์เฟซ IDisposable
ฟังก์ชันการกำจัดไม่ได้ถูกเรียกใช้โดยอัตโนมัติ โปรแกรมเมอร์ต้องดำเนินการด้วยตนเองเพื่อการใช้ทรัพยากรอย่างมีประสิทธิภาพ
24. วิธีการโอเวอร์โหลดของ C# คืออะไร ชี้แจง
การโอเวอร์โหลดเมธอดเป็นวิธีการทั่วไปใน C# ที่ใช้สร้างเมธอดจำนวนมากที่มีชื่อเดียวกันและลายเซ็นที่ระบุ ขั้นตอนนี้ซ้ำกับคลาสเดียวกัน
เมื่อขั้นตอนการโอเวอร์โหลดเมธอดเสร็จสิ้น คอมไพลเลอร์จะเริ่มดำเนินการเพื่อเรียกการดำเนินการที่ระบุตามเมธอดโอเวอร์โหลด
25. อะไรคือความแตกต่างระหว่างค่าอ่านอย่างเดียวและค่าคงที่?
มีการประกาศตัวแปรคงที่และเริ่มต้นระหว่างการคอมไพล์ หลังจากนั้น จะไม่สามารถเปลี่ยนแปลงค่านี้ได้ ในทางกลับกัน จะใช้แบบอ่านอย่างเดียวเมื่อมีการจัดสรรค่า ณ รันไทม์
26. User Control และ Custom Control คืออะไร?
รหัสคอมไพล์ใช้เพื่อพัฒนาการควบคุมแบบกำหนดเอง สิ่งเหล่านี้อาจรวมอยู่ในกล่องเครื่องมือและใช้งานง่าย โดยการลากและวางตัวควบคุมเหล่านี้ นักพัฒนาอาจรวมไว้ในแบบฟอร์มบนเว็บของตน
การควบคุมผู้ใช้และไฟล์ที่รวม ASP นั้นค่อนข้างคล้ายกัน นอกจากนี้ยังทำง่าย ในทางกลับกัน ผู้ใช้ไม่สามารถเพิ่มการควบคุมลงในกล่องเครื่องมือได้ พวกเขาไม่สามารถดึงและปล่อยออกจากมันได้
27. ใน C# ผู้รับมอบสิทธิ์แบบหลายผู้รับคืออะไร
ผู้รับมอบสิทธิ์แบบหลายผู้รับรักษาการอ้างอิงหรือที่อยู่ของหลายฟังก์ชันในเวลาเดียวกัน เมื่อเราเรียกใช้ผู้รับมอบสิทธิ์แบบหลายผู้รับ ก็จะเรียกใช้ฟังก์ชันอื่นๆ ทั้งหมดที่อ้างถึงด้วย ในการเรียกใช้เมธอดหลายๆ เมธอด ให้ใช้เมธอดทั้งลายเซ็น เช่นเดียวกับผู้รับมอบสิทธิ์ ตัวอย่างเช่น:
28. การรวมวัตถุใน C# คืออะไร?
การรวมวัตถุเป็นเทคนิคการออกแบบในซอฟต์แวร์ที่รีไซเคิลสิ่งต่างๆ แทนที่จะสร้างใหม่ สามารถทำได้โดยจัดเก็บรายการที่เลือกไว้ในกลุ่มและทำให้พร้อมใช้งานเมื่อแอปพลิเคชันร้องขอ ขั้นตอนนี้ปรับปรุงประสิทธิภาพโดยลดการสร้างวัตถุที่ไม่จำเป็น
29. generics ใน C#.NET คืออะไรกันแน่?
Generics ใช้เพื่อสร้างคลาสรหัสที่ใช้ซ้ำได้เพื่อลดความซ้ำซ้อนของรหัส ปรับปรุงความปลอดภัยของประเภท และปรับปรุงความเร็ว เราสามารถสร้างคลาสคอลเลกชันด้วยยาสามัญ
ในระบบ ควรใช้เนมสเปซทั่วไปแทนคลาสเช่น ArrayList เนมสเปซสำหรับคอลเลกชัน การใช้ประเภทพารามิเตอร์ได้รับการสนับสนุนโดยยาชื่อสามัญ
30. เป็นไปได้ไหมที่จะแทนที่เมธอดเสมือนส่วนตัว?
ไม่สามารถแทนที่เมธอดเสมือนส่วนตัวได้เนื่องจากเป็นไพรเวตสำหรับคลาสและไม่สามารถเข้าถึงได้จากภายนอก
31. แยกความแตกต่างระหว่าง method overloading และ method overriding ใน C# อย่างไร?
การแทนที่เมธอดเป็นกระบวนการของการเปลี่ยนแปลงนิยามพื้นฐานของคลาสที่ได้รับ ในที่สุดเมธอดของคลาสที่ได้รับจะทำงานแตกต่างกันอันเป็นผลมาจากกลยุทธ์นี้
ในทางกลับกัน การโอเวอร์โหลดเมธอดสามารถอธิบายได้ว่าเป็นการสร้างเมธอดจำนวนมากที่มีชื่อเดียวกันแต่มีลายเซ็นที่แตกต่างกันภายใต้คลาสเดียวกัน
32. ใน C# อะไรคือความแตกต่างระหว่าง String และ StringBuilder?
วัตถุสตริงไม่เปลี่ยนรูป ซึ่งหมายความว่าไม่สามารถเปลี่ยนแปลงได้เมื่อสร้างแล้ว ความพยายามใด ๆ ในการเปลี่ยนแปลงวัตถุสตริงจะส่งผลให้เกิดการสร้างวัตถุสตริงใหม่
ในทางกลับกัน วัตถุตัวสร้างสตริงนั้นมีความยืดหยุ่นและสามารถเปลี่ยนแปลงได้ตามที่ผู้พัฒนาเห็นว่าเหมาะสม
33. ผู้แทนคืออะไรกันแน่?
ใน C++ ผู้รับมอบสิทธิ์จะเหมือนกับพอยน์เตอร์ของฟังก์ชัน ความแตกต่างเพียงอย่างเดียวระหว่างสองสิ่งนี้คือผู้รับมอบสิทธิ์เป็นแบบปลอดภัยในขณะที่ตัวชี้ฟังก์ชันไม่ใช่ ผู้รับมอบสิทธิ์มีความจำเป็นเนื่องจากช่วยให้สามารถสร้างฟังก์ชันประเภทปลอดภัยทั่วไปได้
34. เมื่อใดที่คุณควรใช้มัลติเธรดใน C# และเมื่อใดที่คุณควรหลีกเลี่ยง
มัลติเธรด หรือที่รู้จักกันในชื่อของเธรด เป็นวิธีที่มีประสิทธิภาพในการเพิ่มความเร็วของโปรแกรมที่กิจกรรมต่างๆ ดำเนินการพร้อมกัน ช่วยให้เธรดต่าง ๆ สามารถดำเนินการได้อย่างอิสระ แทนที่จะรอให้ขั้นตอนก่อนหน้านี้เสร็จสิ้น สิ่งนี้มีความสามารถในการเพิ่มความเร็วของโปรแกรม
อย่างไรก็ตาม เมื่อหลายกระบวนการของโปรแกรมเชื่อมต่อกัน ไม่แนะนำให้ใช้มัลติเธรด ตัวอย่างเช่น หากขั้นตอน B ขึ้นอยู่กับขั้นตอน A ที่ทำเสร็จก่อน การทำงานแบบมัลติเธรดจะทำให้เกิดข้อกังวลด้านประสิทธิภาพและข้อบกพร่องของซอฟต์แวร์ เธรดมีความละเอียดอ่อนมากขึ้นเมื่อโปรแกรมพัฒนาขึ้นอย่างซับซ้อน
35. ใน C# ผู้รับมอบสิทธิ์แบบหลายผู้รับคืออะไร
ผู้รับมอบสิทธิ์แบบหลายผู้รับในภาษา C# ซึ่งตรงข้ามกับผู้รับมอบสิทธิ์แบบพื้นฐานหมายถึงวิธีการเป้าหมายจำนวนมาก เมื่อใช้ผู้รับมอบสิทธิ์แบบหลายผู้รับ ฟังก์ชันทั้งหมดที่ผู้รับมอบสิทธิ์ชี้ไปจะถูกเรียกใช้ มีการนำไปใช้ด้วยความช่วยเหลือของคลาส MulticastDelegate ของระบบ
36. ในภาษา C# อะไรคือความแตกต่างระหว่างการโยงช่วงหลังและการผูกช่วงต้น?
- การรวมก่อนกำหนดจะเกิดขึ้นในเวลาคอมไพล์ ในขณะที่การรวมล่าช้าจะเกิดขึ้นระหว่างรันไทม์
- การรวมล่าช้ามักจะช้ากว่าการรวมเร็วเนื่องจากเกิดขึ้นที่รันไทม์
- ตรงกันข้ามกับการรวมช่วงหลังซึ่งใช้วัตถุเพื่อแก้ไขการเรียกเมธอด การรวมช่วงต้นจะแก้ไขการเรียกเมธอดโดยใช้ข้อมูลคลาส
37. แยกความแตกต่างระหว่าง Directcast และ Ctype?
ประเภทของวัตถุที่ต้องการประเภทรันไทม์ให้ตรงกับประเภทที่ระบุใน DirectCast จะถูกแปลงโดยใช้ DirectCast
เมื่อมีการระบุการแปลงระหว่างนิพจน์และประเภท จะใช้ Ctype
38. HashSet ใช้ใน C# อย่างไร
ใน C# HashSet คือชุดของค่าที่แตกต่างกันแบบไม่เรียงลำดับ โดยทั่วไป จะใช้เพื่อป้องกันการแทรกองค์ประกอบที่ซ้ำกันในคอลเล็กชัน และทำงานได้ดีกว่ารายการในงานนี้
คลาส HashSet ซึ่งสืบเชื้อสายมาจากระบบจะใช้เพื่อใช้งาน
39. โปรดอธิบายการรวมเธรดใน C#
ใน C# เธรดพูลคือชุดของเธรด เธรดเหล่านี้ถูกใช้เพื่อทำงานโดยไม่รบกวนการทำงานของเธรดหลัก เธรดในเธรดพูลกลับไปที่เธรดพูลเมื่อเสร็จสิ้นการทำงาน
คลาส System ประกอบด้วยคลาสที่จัดการเธรดในกลุ่มเธรดและการดำเนินการ เธรด ThreadPool เป็นเนมสเปซ
40. อะไรคือความแตกต่างระหว่างคำหลัก Const และ ReadOnly ใน C#?
- ไม่สามารถประกาศแบบอ่านอย่างเดียวภายในเมธอดได้ ในขณะที่ Const สามารถ
- Const เป็นค่าคงที่เวลาคอมไพล์ ในขณะที่ ReadOnly เป็นค่าคงที่รันไทม์
- ค่าแบบอ่านอย่างเดียวสามารถแก้ไขได้ แต่ค่า Const ไม่สามารถทำได้
41. คุณสามารถให้รายละเอียดอะไรเกี่ยวกับไฟล์ C# XSD ได้บ้าง
XSD ย่อมาจาก XML Schema Definition หากไม่มีไฟล์ XSD เชื่อมต่อกับไฟล์ XML ก็สามารถมีแอตทริบิวต์ องค์ประกอบ และแท็กใดก็ได้ ไฟล์ XSD จัดเตรียมเฟรมเวิร์กสำหรับไฟล์ XML โดยพิจารณาว่าส่วนประกอบและคุณลักษณะใดควรมีอยู่ในไฟล์ XML ตลอดจนลำดับของมัน
42. คุณสมบัติ Get and Set Accessor มีความหมายกับคุณอย่างไร?
ใน C# Get และ Set ได้เรียกว่า accessors เนื่องจากสร้างโดยใช้คุณสมบัติ คุณสมบัติอนุญาตให้อ่านและเขียนค่าของฟิลด์ส่วนตัว ฟิลด์ส่วนตัวดังกล่าวเข้าถึงได้ผ่านตัวเข้าถึง
ในขณะที่คุณสมบัติ Get ใช้เพื่อส่งคืนค่าของคุณสมบัติ คุณสมบัติ Set จะถูกใช้เพื่อตั้งค่า
43. การฉีดพึ่งพาใน C # คืออะไร?
การพึ่งพาการฉีด (DI) เป็นเทคนิคการออกแบบใน C# ที่ใช้เพื่อสร้างการเขียนโปรแกรมที่เชื่อมโยงอย่างหลวมๆ โพรซีเดอร์นี้ถ่ายโอนการสร้างและการรวมออบเจกต์ที่อ้างอิงภายนอกคลาสที่อ็อบเจ็กต์พึ่งพา เป้าหมายหลักคือการทำให้การแก้ไขโค้ดในอนาคตสามารถจัดการได้มากขึ้น
สรุป
C# เป็นภาษาโปรแกรมหลักที่ใช้ในภาษาโปรแกรมระดับสูงทั้งหมด นักพัฒนา C# เป็นที่ต้องการอย่างมากและสามารถค้นหาโอกาสทางอาชีพที่น่าสนใจในอุตสาหกรรมต่างๆ เช่น การพัฒนาส่วนหน้า การเขียนโปรแกรมส่วนหลัง และการพัฒนาแอป และเนื่องจาก Microsoft สนับสนุน C# ความนิยมก็จะเพิ่มขึ้นเท่านั้น
คำถามข้างต้นเป็นคำถามสัมภาษณ์ C# ที่สำคัญที่สุดสำหรับมืออาชีพและผู้เริ่มต้นที่มีประสบการณ์ ดู ซีรี่ส์สัมภาษณ์ของ Hashdork เพื่อช่วยในการเตรียมตัวสัมภาษณ์
เขียนความเห็น