មាតិកា[លាក់][បង្ហាញ]
- 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# តើអ្វីជា Destructor?
- 14. នៅក្នុង C# តើអ្វីជាលិបិក្រម?
- 15. តើអ្វីជាភាពខុសគ្នារវាងកូដដែលបានគ្រប់គ្រង និងមិនអាចគ្រប់គ្រងបាន?
- 16. រៀបរាប់ពីសៀរៀល។
- 17. នៅក្នុង C# តើវាល និងលក្ខណៈសម្បត្តិប្រែប្រួលពីគ្នាទៅវិញទៅមកយ៉ាងដូចម្តេច?
- 18. តើអ្នកអាចពណ៌នាដោយប្រើសេចក្តីថ្លែងការណ៍នៅក្នុង C# យ៉ាងលំអិតដោយរបៀបណា?
- 19. តើអ្នកនឹងអនុវត្តចំណុចប្រទាក់ជាច្រើនដែលមានឈ្មោះវិធីសាស្ត្រដូចគ្នាក្នុងថ្នាក់ដូចគ្នាដោយរបៀបណា?
- 20. នៅក្នុង C# តើអ្វីជាភាពខុសគ្នារវាង Task និង Thread?
- 21. តើមុខងារចុងក្រោយនៅក្នុង C# គឺជាអ្វី?
- 22. ធ្វើឱ្យមានភាពខុសគ្នារវាងប្លុកចុងក្រោយ និងចុងក្រោយ។
- 23. ពិពណ៌នាអំពីវិធីសាស្រ្តបោះចោល C# យ៉ាងលម្អិត។
- 24. អ្វីទៅជាវិធីសាស្រ្ត C# Overloading? បំភ្លឺ។
- 25. តើអ្វីជាភាពខុសគ្នារវាងអានបានតែ និងថេរ?
- 26. តើការគ្រប់គ្រងអ្នកប្រើប្រាស់ និងការគ្រប់គ្រងផ្ទាល់ខ្លួនជាអ្វី?
- 27. នៅក្នុង C# តើអ្វីជាប្រតិភូពហុមុខងារ?
- 28. តើការបញ្ចូលវត្ថុនៅក្នុង C# ជាអ្វី?
- 29. តើអ្វីជា generics នៅក្នុង C#.NET?
- 30. តើវាអាចទៅរួចទេក្នុងការបដិសេធវិធីសាស្ត្រនិម្មិតឯកជន?
- 31. ភាពខុសគ្នារវាងវិធីសាស្រ្ត overloading និងការ overriding method ក្នុង C#?
- 32. នៅក្នុង C# តើអ្វីជាភាពខុសគ្នារវាង String និង StringBuilder?
- 33. តើប្រតិភូជាអ្វី?
- 34. តើនៅពេលណាដែលអ្នកគួរប្រើ multithreading នៅក្នុង 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 properties មានន័យយ៉ាងណាចំពោះអ្នក?
- 43. តើការចាក់ថ្នាំអាស្រ័យនៅក្នុង C# គឺជាអ្វី?
- សន្និដ្ឋាន
C# (ពីមុនត្រូវបានគេស្គាល់ថា C sharp) គឺជាភាសាសរសេរកម្មវិធីតម្រង់ទិសវត្ថុ ដែលត្រូវបានប្រើប្រាស់ជាញឹកញាប់ដោយអ្នកអភិវឌ្ឍន៍ដើម្បីធ្វើសកម្មភាពជាច្រើន និងសម្រេចបាននូវគោលដៅជាច្រើន។
ភាសាសរសេរកម្មវិធីតម្រង់ទិសវត្ថុ ដូចជា C++, Python, និង Java មានច្រើនរសជាតិ។ ភាសាសរសេរកម្មវិធីទាំងនេះត្រូវបានរចនាឡើងដើម្បីដំណើរការនៅក្នុងក្របខ័ណ្ឌជាក់លាក់មួយ។ ដូចគ្នានេះដែរ C# ត្រូវបានបង្កើត និងបង្កើតសម្រាប់ក្របខ័ណ្ឌជាក់លាក់មួយ ពោលគឺ NET ។
ក្របខ័ណ្ឌ .NET ត្រូវបានបង្កើតឡើងដោយ ក្រុមហ៊ុន Microsoft. វាផ្តល់នូវវេទិកាដ៏ធំសម្រាប់បង្កើតកម្មវិធី សេចក្តីប្រកាស ការណែនាំកម្មវិធី និងអ្វីៗផ្សេងទៀត។ C# អាចត្រូវបានប្រើសម្រាប់ការអភិវឌ្ឍន៍គេហទំព័រ ការលេងហ្គេម កម្មវិធីទូរស័ព្ទកម្មវិធី windows និងគម្រោងស្រដៀងគ្នាផ្សេងទៀត។
ជាមួយនឹងគុណសម្បត្តិបែបនេះ ការប្រើប្រាស់ C# បានពង្រីក ហើយតម្រូវការសម្រាប់អ្នកឯកទេសដែលអាចប្រើប្រាស់វាបានត្រឹមត្រូវបានកើនឡើងទ្វេដង។ ពីព្រោះ C# គឺពេញនិយម ភាសាសរសេរកម្មវិធីក្រុមហ៊ុនធំ និងតូចជាច្រើនមានមូលដ្ឋានលើផលិតផលរបស់ពួកគេ។
ដូច្នេះ សូមអនុវត្តសំណួរកម្រិតមូលដ្ឋាន និងកម្រិតខ្ពស់ C# ដើម្បីសម្រួលដល់ការសម្ភាសន៍។
1. តើ C# ជាអ្វី?
Microsoft C# គឺជាសហសម័យ គោលបំណងទូទៅ កម្មវិធីតម្រង់ទិសដៅវត្ថុ ភាសា។ C# ត្រូវបានបម្រុងទុកសម្រាប់រចនាសម្ព័ន្ធភាសាទូទៅ (CLI) ដែលរួមមានកូដដែលអាចប្រតិបត្តិបាន និងបរិស្ថានពេលដំណើរការដែលអនុញ្ញាតឱ្យប្រើប្រាស់ភាសាកម្រិតខ្ពស់ជាច្រើននៅលើប្រព័ន្ធកុំព្យូទ័រ និងស្ថាបត្យកម្មចម្រុះ។
2. តើអ្វីជាភាពខុសគ្នារវាង C# ពី C?
ជាធម្មតា C ត្រូវបានគេស្គាល់ថាជាភាសានីតិវិធី ចំណែក C# គឺសំដៅលើវត្ថុច្រើនជាង។ ភាពខុសគ្នាសំខាន់គឺថា C# អនុញ្ញាតឱ្យប្រមូលសំរាមដោយស្វ័យប្រវត្តិតាមរយៈ Common Language Runtime (CLR) ចំណែក C មិន។ C# ទាមទារក្របខ័ណ្ឌ .NET ដើម្បីដំណើរការ ចំណែក C គឺជាភាសាឯករាជ្យនៃវេទិកា។
3. តើថ្នាក់ជាអ្វី?
ថ្នាក់មួយបម្រើជាគំរូសម្រាប់ការសាងសង់វត្ថុ។ រួមជាមួយបច្ចេកទេសវាមានគុណលក្ខណៈ។ ពីថ្នាក់តែមួយ យើងអាចបង្កើតវត្ថុមួយចំនួន។
4. តើវត្ថុជាអ្វី?
class instance ដែលគេស្គាល់ថាជា object គឺជារបៀបដែលយើងចូលប្រើមុខងាររបស់ class ។ ដើម្បីបង្កើតវត្ថុមួយ យើងអាចប្រើពាក្យគន្លឹះ "ថ្មី" ។ មុខងារ សមាជិកទិន្នន័យ និងឥរិយាបថនៃថ្នាក់ដែលផលិតវត្ថុក្នុងអង្គចងចាំត្រូវបានរក្សាទុក។
5. តើអ្វីជាភាពខុសគ្នារវាងពាក្យឋិតិវន្ត សាធារណៈ និងមោឃៈ?
គ្រប់ទីកន្លែងនៅក្នុងកម្មវិធីអាចចូលប្រើអថេរដែលបានកំណត់ជាសាធារណៈ។ អថេរឋិតិវន្តអាចចូលប្រើជាសកលដោយមិនតម្រូវឱ្យបង្កើត class instance ។ នៅក្នុង C# ឧបករណ៍កែប្រែប្រភេទមួយហៅថា Void ត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញប្រភេទត្រឡប់នៃវិធីសាស្រ្តមួយ។
6. កំណត់អ្នកសាងសង់។
អ្នកបង្កើតគឺជាមុខងារសមាជិកជាក់លាក់នៃថ្នាក់។ នៅពេលដែលវត្ថុមួយត្រូវបានបង្កើតឡើង constructor ត្រូវបានហៅដោយស្វ័យប្រវត្តិ។ ថ្នាក់បង្កើតតម្លៃទាំងអស់នៃសមាជិកទិន្នន័យ ដូចដែលវាត្រូវបានចាប់ផ្តើម។
7. តើអ្វីជា C# ក្នុងការប្រមូលសំរាម?
ដំណើរការនៃការសម្អាតអង្គចងចាំដែលត្រូវបានកាន់កាប់ដោយវត្ថុដែលមិនចង់បានត្រូវបានគេហៅថាការប្រមូលសំរាម។ ចំនួនអង្គចងចាំជាក់លាក់មួយត្រូវបានផ្តល់ដោយស្វ័យប្រវត្តិទៅវត្ថុថ្នាក់ នៅពេលដែលវាត្រូវបានបង្កើតនៅក្នុងអង្គចងចាំ heap ។ ឥឡូវនេះអ្នកបានបញ្ចប់ការធ្វើការលើធាតុនេះ ទំហំអង្គចងចាំដែលវាធ្លាប់បានកាន់កាប់ត្រូវបានខ្ជះខ្ជាយ។ ការចងចាំត្រូវតែត្រូវបានដោះលែង។
8. តើរចនាសម្ព័ន្ធមានន័យយ៉ាងណានៅក្នុង C#?
នៅក្នុង C# រចនាសម្ព័ន្ធគឺជាប្រភេទទិន្នន័យដែលត្រូវបានបង្កើតឡើងដោយប្រភេទទិន្នន័យជាច្រើនដូចជា method, fields, constructors, constants, properties, indexers, operators និងសូម្បីតែរចនាសម្ព័ន្ធផ្សេងទៀត។ រចនាសម្ព័ន្ធជួយក្នុងការបង្រួបបង្រួមនៃប្រភេទទិន្នន័យជាច្រើនចូលទៅក្នុងឯកតាតែមួយ។ នៅក្នុងវិធីនេះ, ពួកគេគឺស្រដៀងគ្នាទៅនឹងវគ្គសិក្សា។ រចនាសម្ព័ន្ធគឺជាប្រភេទតម្លៃ ចំណែកថ្នាក់គឺជាប្រភេទយោង។
9. តើកូដ C# ត្រូវបានចងក្រងដោយរបៀបណា?
នៅពេលដែលគម្រោងមួយត្រូវបានបង្កើត កូដប្រភព C# ត្រូវបានចងក្រងជាភាសាកម្រិតមធ្យម (IL)។ IL គឺជាបណ្តុំនៃការណែនាំដែលបង្កើតកូដម៉ាស៊ីនសម្រាប់ប្រតិបត្តិលើដំណើរការម៉ាស៊ីន។ កូដត្រូវបានបញ្ជូនពី preprocessor ទៅ compiler បន្ទាប់មកទៅ assembler ហើយចុងក្រោយទៅ linker ជាបួនដំណាក់កាល។
10. ពិពណ៌នាយ៉ាងច្បាស់អំពីថ្នាក់ C# ផ្សេងៗ។
- ឋិតិវន្ត៖ វាជាប្រភេទនៃ class ដែលមិនអាចត្រូវបាន instantiated ដូច្នេះយើងមិនអាចប្រើពាក្យគន្លឹះថ្មីដើម្បីបង្កើតវត្ថុរបស់វាបានទេ ប៉ុន្តែយើងអាចហៅសមាជិកនៃ class ដោយផ្ទាល់ដោយប្រើឈ្មោះថ្នាក់របស់ពួកគេ។
- អរូបី៖ ដើម្បីកំណត់ថ្នាក់អរូបី ប្រើពាក្យគន្លឹះអរូបី។ គ្មានវត្ថុអាចត្រូវបានបង្កើតសម្រាប់ថ្នាក់អរូបីទេ។ វាត្រូវតែទទួលមរតកក្នុងថ្នាក់រងប្រសិនបើអ្នកចង់ប្រើវា។ និយមន័យសាមញ្ញនៃវិធីសាស្រ្តអរូបី និងមិនមែនអរូបី ត្រូវបានអនុញ្ញាតនៅក្នុងថ្នាក់ Abstract ។
- ផ្នែក៖ ថ្នាក់នេះអនុញ្ញាតឱ្យអ្នកបំបែកលក្ខណៈសម្បត្តិ វិធីសាស្ត្រ និងព្រឹត្តិការណ៍របស់អ្នកទៅជាឯកសារប្រភពជាច្រើន ដែលត្រូវបានរួមបញ្ចូលគ្នាជាបន្តបន្ទាប់ទៅជាថ្នាក់តែមួយនៅពេលបង្កើត។
- បិទជិត៖ ថ្នាក់បិទជិតមិនអាចទទួលមរតកពីថ្នាក់ផ្សេងទៀតបានទេ ហើយមានលក្ខណៈកំណត់។ ឧបករណ៍កែប្រែការចូលប្រើមិនអាចបន្ថែមទៅថ្នាក់បិទជិតបានទេ។
11. តើ Jagged Arrays ជាអ្វី?
អារេដែលមានធាតុអារេត្រូវបានសំដៅថាជាអារេ jagged ។ ធាតុនៃ Jagged Arrays អាចមានរាង និងទំហំជាច្រើន។
12. តើអ្វីជាភាពខុសគ្នារវាងប៉ារ៉ាម៉ែត្រ out និង ref ?
នៅពេលផ្តល់អំណះអំណាងជា ref ប៉ារ៉ាម៉ែត្រត្រូវតែចាប់ផ្តើមមុនពេលបញ្ជូនទៅវិធីសាស្ត្រ។ ម្យ៉ាងវិញទៀត ប៉ារ៉ាម៉ែត្រចេញ មិនចាំបាច់ត្រូវបានចាប់ផ្តើមមុនពេលត្រូវបានផ្គត់ផ្គង់ទៅវិធីសាស្រ្តមួយ។
13. នៅក្នុង C# តើអ្វីជា Destructor?
Destructor គឺជាប្រភេទ method ក្នុង C# ដែលជាផ្នែកមួយនៃ class ។ មុខងារចម្បងរបស់ destructor គឺដើម្បីលុប instances នៃ class នៅពេលដែលវាលែងត្រូវការ ដើម្បីធ្វើអោយ memory ទំនេរ។ អ្នកបំផ្លាញ ជួនកាលត្រូវបានគេស្គាល់ថាជាអ្នកបញ្ចប់។
14. នៅក្នុង C# តើអ្វីជាលិបិក្រម?
សន្ទស្សន៍ត្រូវបានប្រើក្នុង C# ដើម្បីស្វែងរកឧទាហរណ៍នៃថ្នាក់ ឬរចនាសម្ព័ន្ធ។ ដូច្នេះតម្លៃដែលបានធ្វើលិបិក្រមអាចចូលប្រើបានដូចគ្នាទៅនឹងអារេមួយ ប៉ុន្តែដោយមិនចាំបាច់ប្រកាសជាក់លាក់អំពីប្រភេទ ឬសមាជិកឧទាហរណ៍។
15. តើអ្វីជាភាពខុសគ្នារវាងកូដដែលបានគ្រប់គ្រង និងមិនអាចគ្រប់គ្រងបាន?
កូដដែលបានគ្រប់គ្រងអនុញ្ញាតឱ្យអ្នកដំណើរការកូដនៅក្នុងក្របខ័ណ្ឌ .NET នៅលើបរិស្ថានពេលវេលាដំណើរការ CLR ដែលបានគ្រប់គ្រង។
កូដដែលបានគ្រប់គ្រងដំណើរការលើបរិស្ថានពេលដំណើរការដែលបានគ្រប់គ្រងជាជាងប្រព័ន្ធប្រតិបត្តិការ។ ផ្តល់សេវាកម្មជាច្រើនដូចជា អ្នកប្រមូលសំរាម ការគ្រប់គ្រងករណីលើកលែង។ល។
កូដដែលមិនអាចគ្រប់គ្រងបានគឺជាកូដដែលមិនប្រតិបត្តិនៅលើ CLR ហើយដំណើរការនៅខាងក្រៅក្របខ័ណ្ឌ .NET ។ ពួកគេមិនផ្គត់ផ្គង់សេវាកម្មភាសាកម្រិតខ្ពស់ទេ ដូច្នេះហើយដំណើរការដោយគ្មានពួកគេ។ C ++ គឺជាឧទាហរណ៍មួយ។
16. រៀបរាប់ពីសៀរៀល។
ស្ទ្រីមនៃបៃត្រូវតែត្រូវបានបង្កើតពីធាតុដើម្បីផ្ទេរវាតាមបណ្តាញ។ សៀរៀលគឺជាទង្វើនៃការបំប្លែងធាតុទៅជាស្ទ្រីមបៃ។ ចំណុចប្រទាក់ Serialize ត្រូវតែត្រូវបានអនុវត្តដើម្បីឱ្យធាតុអាច serializable ។ ភាពផ្ទុយគ្នានៃការសាងសង់វត្ថុពីស្ទ្រីមបៃត្រូវបានគេហៅថា de-serialization ។
17. នៅក្នុង C# តើវាល និងលក្ខណៈសម្បត្តិប្រែប្រួលពីគ្នាទៅវិញទៅមកយ៉ាងដូចម្តេច?
វាលគឺជាសមាជិកថ្នាក់ ឬវត្ថុនៃប្រភេទណាមួយដែលបម្រើជាទីតាំងសម្រាប់រក្សាទុកទិន្នន័យ ចំណែកឯលក្ខណៈសម្បត្តិគឺជាសមាជិកថ្នាក់ដែលផ្តល់នូវវិធីសាស្ត្រសម្រាប់ការអាន ការសរសេរ និងការគណនាតម្លៃនៃវាលឯកជន។
18. តើអ្នកអាចពណ៌នាដោយប្រើសេចក្តីថ្លែងការណ៍នៅក្នុង C# យ៉ាងលំអិតដោយរបៀបណា?
សេចក្តីថ្លែងការប្រើត្រូវបានប្រើដើម្បីដាក់កម្រិតលើការប្រើប្រាស់ធនធានមួយ ឬច្រើននៅក្នុងកម្មវិធី។ ធនធានត្រូវបានប្រើប្រាស់ និងបញ្ចេញជាប្រចាំ។
ការងារចម្បងរបស់សេចក្តីថ្លែងការណ៍នេះគឺដើម្បីគ្រប់គ្រងធនធានដែលមិនចង់បាន និងបញ្ចេញពួកវាដោយស្វ័យប្រវត្តិ។ នៅពេលដែលវត្ថុដែលកំពុងប្រើប្រាស់ធនធានត្រូវបានបង្កើតឡើង ត្រូវប្រាកដថាមុខងារបោះចោលរបស់វត្ថុត្រូវបានហៅឱ្យបញ្ចេញធនធានដែលត្រូវការដោយវត្ថុនោះ។ នេះគឺជាកន្លែងដែលការប្រើសេចក្តីថ្លែងការណ៍មានប្រយោជន៍។
19. តើអ្នកនឹងអនុវត្តចំណុចប្រទាក់ជាច្រើនដែលមានឈ្មោះវិធីសាស្ត្រដូចគ្នាក្នុងថ្នាក់ដូចគ្នាដោយរបៀបណា?
ដើម្បីអនុវត្តចំណុចប្រទាក់ជាច្រើនដែលមានឈ្មោះវិធីសាស្ត្រដូចគ្នា ជៀសវាងការអនុវត្តពួកវានៅក្នុងតួនៃមុខងារ។ ជំនួសមកវិញ អ្នកនឹងផ្តល់ឈ្មោះនៃចំណុចប្រទាក់ដោយផ្ទាល់នៅក្នុងតួនៃវិធីសាស្ត្រ។ កម្មវិធីចងក្រងនឹងទទួលស្គាល់វិធីសាស្ត្រចំណុចប្រទាក់ណាមួយដែលកំពុងត្រូវបានយោង ដោយដោះស្រាយបញ្ហា។
20. នៅក្នុង C# តើអ្វីជាភាពខុសគ្នារវាង Task និង Thread?
ខ្សែស្រលាយគឺជាខ្សែស្រឡាយប្រព័ន្ធប្រតិបត្តិការពិតប្រាកដដែលមានធនធានជង់ និងខឺណែលផ្ទាល់ខ្លួន។ ខ្សែស្រឡាយផ្តល់នូវការគ្រប់គ្រងច្រើនបំផុត។ ខ្សែស្រឡាយអនុញ្ញាតឱ្យអ្នកបោះបង់ () ផ្អាក () ឬបន្ត () ។ ស្ថានភាពរបស់ Thread អាចត្រូវបានគេសង្កេតឃើញ ឬលក្ខណៈរបស់វា ដូចជាទំហំជង់ ស្ថានភាពផ្ទះល្វែង និងវប្បធម៌អាចត្រូវបានកំណត់។ CLR រក្សាបណ្តុំនៃខ្សែស្រឡាយដែលរុំដោយ ThreadPool ។
Task Parallel Library មានថ្នាក់មួយហៅថា Task។ មិនដូច ThreadPool ទេ Task មិនមានខ្សែស្រឡាយប្រព័ន្ធប្រតិបត្តិការផ្ទាល់ខ្លួនទេ។ កិច្ចការត្រូវបានប្រតិបត្តិដោយ TaskScheduler ទោះបីជាកម្មវិធីកំណត់ពេលលំនាំដើមត្រូវបានប្រតិបត្តិដោយ ThreadPool ក៏ដោយ។ វាអាចទៅរួចដែលនឹងត្រូវបានជូនដំណឹងនៅពេលដែលកិច្ចការបញ្ចប់ និងដើម្បីទទួលបានលទ្ធផល។
21. តើមុខងារចុងក្រោយនៅក្នុង C# គឺជាអ្វី?
ថ្នាក់វត្ថុដែលត្រូវបានប្រើសម្រាប់សកម្មភាពសម្អាតកំណត់មុខងារ finalize () ។ នៅពេលដែលឯកសារយោងទៅវត្ថុមួយមិនត្រូវបានប្រើប្រាស់ក្នុងរយៈពេលយូរ អ្នកប្រមូលសំរាមនឹងហៅមុខងារនេះជាញឹកញាប់។
អ្នកប្រមូលសំរាមនឹងរំដោះធនធានដែលបានគ្រប់គ្រងដោយស្វ័យប្រវត្តិ ប៉ុន្តែប្រសិនបើអ្នកចង់ដោះលែងធនធានដែលមិនចាំបាច់ដូចជាចំណុចទាញឯកសារ ការភ្ជាប់ទិន្នន័យ និងអ្វីៗផ្សេងទៀត អ្នកត្រូវតែអនុវត្តមុខងារចុងក្រោយឱ្យបានច្បាស់លាស់។
22. ធ្វើឱ្យមានភាពខុសគ្នារវាងប្លុកចុងក្រោយ និងចុងក្រោយ។
ប្លុកដែលបានបញ្ចប់ត្រូវបានហៅបន្ទាប់ពីប្លុកសាកល្បងនិងចាប់ត្រូវបានបញ្ចប់ចាប់តាំងពីវាត្រូវការសម្រាប់ការដោះស្រាយករណីលើកលែង។ ប្លុកកូដត្រូវបានប្រតិបត្តិដោយមិនគិតពីថាតើករណីលើកលែងត្រូវបានចាប់នោះទេ។ កូដរបស់ប្លុកជាទូទៅស្អាតជាង។
វិធីសាស្រ្តចុងក្រោយគឺត្រូវបានហៅមុនពេលប្រមូលសំរាម។ ទំនួលខុសត្រូវចម្បងរបស់វិធីសាស្ត្រចុងក្រោយគឺការសម្អាតកូដដែលមិនអាចគ្រប់គ្រងបាន ដែលត្រូវបានបង្កឡើងដោយស្វ័យប្រវត្តិនៅពេលណាដែលឧទាហរណ៍មិនត្រូវបានហៅឡើងវិញ។
23. ពិពណ៌នាអំពីវិធីសាស្រ្តបោះចោល C# យ៉ាងលម្អិត។
មុខងារ disposof() រំដោះធនធានដែលមិនប្រើរបស់វត្ថុមួយ។ ធនធានដែលមិនប្រើ ដូចជាឯកសារ ការភ្ជាប់ទិន្នន័យជាដើម។ មុខងារនេះត្រូវបានបញ្ជាក់នៅក្នុង interface IDisposable ដែលត្រូវបានអនុវត្តដោយ class ដោយប្រកាសអំពី interface IDisposable body ។
មុខងារបោះចោលមិនត្រូវបានគេហៅថាដោយស្វ័យប្រវត្តិទេ។ អ្នកសរសេរកម្មវិធីត្រូវតែអនុវត្តវាដោយដៃសម្រាប់ការប្រើប្រាស់ធនធានប្រកបដោយប្រសិទ្ធភាព។
24. អ្វីទៅជាវិធីសាស្រ្ត C# Overloading? បំភ្លឺ។
វិធីសាស្រ្តផ្ទុកលើសទម្ងន់គឺជាវិធីសាស្រ្តធម្មតានៅក្នុង C# ដែលត្រូវបានប្រើដើម្បីបង្កើតវិធីសាស្រ្តមួយចំនួនដែលមានឈ្មោះដូចគ្នា និងហត្ថលេខាដែលបានបញ្ជាក់។ នីតិវិធីនេះត្រូវបានធ្វើម្តងទៀតជាមួយនឹងថ្នាក់ដូចគ្នា។
នៅពេលដែលវិធីសាស្ត្រផ្ទុកលើសចំណុះត្រូវបានបញ្ចប់ អ្នកចងក្រងចាប់ផ្តើមប្រតិបត្តិការដើម្បីហៅសកម្មភាពដែលបានបញ្ជាក់ដោយផ្អែកលើវិធីសាស្ត្រផ្ទុកលើសទម្ងន់។
25. តើអ្វីជាភាពខុសគ្នារវាងអានបានតែ និងថេរ?
អថេរថេរត្រូវបានប្រកាស និងចាប់ផ្តើមកំឡុងពេលចងក្រង។ បន្ទាប់ពីនោះ តម្លៃនេះមិនអាចផ្លាស់ប្តូរបានទេ។ ម្យ៉ាងវិញទៀត ការអានបានតែត្រូវបានប្រើនៅពេលដែលតម្លៃត្រូវបានបែងចែកនៅពេលដំណើរការ។
26. តើការគ្រប់គ្រងអ្នកប្រើប្រាស់ និងការគ្រប់គ្រងផ្ទាល់ខ្លួនជាអ្វី?
កូដដែលបានចងក្រងត្រូវបានប្រើដើម្បីបង្កើតការគ្រប់គ្រងផ្ទាល់ខ្លួន។ ទាំងនេះអាចត្រូវបានរួមបញ្ចូលនៅក្នុងប្រអប់ឧបករណ៍ និងងាយស្រួលប្រើ។ ដោយការអូស និងទម្លាក់ការគ្រប់គ្រងទាំងនេះ អ្នកអភិវឌ្ឍន៍អាចរួមបញ្ចូលពួកវានៅក្នុងទម្រង់គេហទំព័ររបស់ពួកគេ។
ការគ្រប់គ្រងអ្នកប្រើប្រាស់ និងឯកសារដែលរួមបញ្ចូល ASP គឺស្រដៀងគ្នាណាស់។ ពួកគេក៏សាមញ្ញក្នុងការធ្វើផងដែរ។ ម្យ៉ាងវិញទៀត ការគ្រប់គ្រងអ្នកប្រើប្រាស់ មិនអាចបន្ថែមទៅប្រអប់ឧបករណ៍បានទេ។ ពួកគេក៏មិនអាចទាញ និងទម្លាក់ចេញពីវាដែរ។
27. នៅក្នុង C# តើអ្វីជាប្រតិភូពហុមុខងារ?
ប្រតិភូពហុមុខងាររក្សាឯកសារយោង ឬអាសយដ្ឋានទៅកាន់មុខងារជាច្រើនក្នុងពេលតែមួយ។ នៅពេលយើងហៅប្រតិភូពហុមុខងារ វានឹងហៅមុខងារផ្សេងទៀតទាំងអស់ដែលវាសំដៅ។ ដើម្បីហៅវិធីសាស្ត្រជាច្រើន ប្រើហត្ថលេខាវិធីទាំងមូល ដូចអ្នកតំណាងដែរ។ ជាឧទាហរណ៍៖
28. តើការបញ្ចូលវត្ថុនៅក្នុង C# ជាអ្វី?
ការបញ្ចូលវត្ថុគឺជាបច្ចេកទេសរចនានៅក្នុងកម្មវិធីដែលកែច្នៃវត្ថុជាជាងការកសាងវាឡើងវិញ។ វាសម្រេចបានដោយការរក្សាទុកធាតុដែលបានជ្រើសរើសនៅក្នុងអាងមួយ និងធ្វើឱ្យពួកវាមានសម្រាប់ប្រើប្រាស់នៅពេលដែលកម្មវិធីស្នើសុំពួកគេ។ នីតិវិធីនេះធ្វើអោយប្រសើរឡើងនូវការអនុវត្តដោយកាត់បន្ថយការបង្កើតវត្ថុដែលមិនត្រូវការ។
29. តើអ្វីជា generics នៅក្នុង C#.NET?
Generics ត្រូវបានប្រើដើម្បីបង្កើតថ្នាក់កូដដែលអាចប្រើបានឡើងវិញក្នុងគោលបំណងកាត់បន្ថយការប្រើកូដដដែលៗ កែលម្អសុវត្ថិភាពប្រភេទ និងបង្កើនល្បឿន។ យើងអាចបង្កើតថ្នាក់ប្រមូលផ្ដុំជាមួយ generics ។
នៅក្នុងប្រព័ន្ធ ចន្លោះឈ្មោះទូទៅគួរតែត្រូវបានប្រើជំនួសឱ្យថ្នាក់ដូចជា ArrayList ។ Namespace សម្រាប់បណ្តុំ។ ការប្រើប្រាស់ប្រភេទនៃប៉ារ៉ាម៉ែត្រត្រូវបានលើកទឹកចិត្តដោយ generics ។
30. តើវាអាចទៅរួចទេក្នុងការបដិសេធវិធីសាស្ត្រនិម្មិតឯកជន?
វិធីសាស្ត្រនិម្មិតឯកជនមិនអាចបដិសេធបានទេ ដោយសារវាជាឯកជនសម្រាប់ថ្នាក់ និងមិនអាចចូលប្រើពីខាងក្រៅវាបាន។
31. ភាពខុសគ្នារវាងវិធីសាស្រ្ត overloading និងការ overriding method ក្នុង C#?
Method overriding គឺជាដំណើរការនៃការផ្លាស់ប្តូរនិយមន័យមូលដ្ឋាននៃថ្នាក់ដែលបានមក។ វិធីសាស្រ្តនៃថ្នាក់ដែលទទួលបាននៅទីបំផុតមានឥរិយាបទខុសគ្នាជាលទ្ធផលនៃយុទ្ធសាស្ត្រនេះ។
ម្យ៉ាងវិញទៀត ការផ្ទុកលើសទម្ងន់ វិធីសាស្រ្តអាចត្រូវបានពិពណ៌នាថាជាទង្វើនៃការបង្កើតវិធីសាស្រ្តជាច្រើនដែលមានឈ្មោះដូចគ្នា ប៉ុន្តែហត្ថលេខាខុសគ្នានៅក្រោមថ្នាក់ដូចគ្នា។
32. នៅក្នុង C# តើអ្វីជាភាពខុសគ្នារវាង String និង StringBuilder?
វត្ថុខ្សែអក្សរគឺមិនអាចផ្លាស់ប្តូរបាន ដែលមានន័យថាវាមិនអាចផ្លាស់ប្តូរបានទេនៅពេលដែលវាត្រូវបានបង្កើត។ ការប៉ុនប៉ងណាមួយដើម្បីផ្លាស់ប្តូរវត្ថុខ្សែអក្សរនឹងនាំឱ្យមានការបង្កើតវត្ថុខ្សែអក្សរថ្មី។
ម្យ៉ាងវិញទៀត វត្ថុបង្កើតខ្សែអក្សរគឺអាចបត់បែនបាន និងអាចផ្លាស់ប្តូរបាន ដូចដែលអ្នកអភិវឌ្ឍន៍មើលឃើញថាសមរម្យ។
33. តើប្រតិភូជាអ្វី?
នៅក្នុង C ++ ប្រតិភូគឺជាមូលដ្ឋានដូចគ្នានឹងទ្រនិចមុខងារ។ ភាពខុសគ្នាតែមួយគត់រវាងអ្នកទាំងពីរគឺថា ប្រតិភូគឺជាប្រភេទសុវត្ថិភាព ចំណែកអ្នកចង្អុលមុខងារមិនមាន។ ប្រតិភូគឺចាំបាច់ពីព្រោះពួកគេបើកដំណើរការសាងសង់មុខងារសុវត្ថិភាពប្រភេទទូទៅ។
34. តើនៅពេលណាដែលអ្នកគួរប្រើ multithreading នៅក្នុង C# ហើយតើនៅពេលណាដែលអ្នកគួរជៀសវាងវា?
Multithreading ដែលត្រូវបានគេស្គាល់ថាជា Threading គឺជាវិធីសាស្រ្តដ៏មានប្រសិទ្ធភាពមួយក្នុងការបង្កើនល្បឿននៃកម្មវិធីដែលសកម្មភាពជាច្រើនដំណើរការក្នុងពេលដំណាលគ្នា។ វាអនុញ្ញាតឱ្យខ្សែស្រឡាយផ្សេងៗប្រតិបត្តិដោយឯករាជ្យ ជាជាងរង់ចាំជំហានមុនត្រូវបានបញ្ចប់។ វាមានសមត្ថភាពក្នុងការបង្កើនល្បឿននៃកម្មវិធីមួយ។
ទោះជាយ៉ាងណាក៏ដោយ នៅពេលដែលដំណើរការរបស់កម្មវិធីជាច្រើនត្រូវបានភ្ជាប់គ្នាទៅវិញទៅមក ការភ្ជាប់ multithreading មិនត្រូវបានណែនាំទេ។ ឧទាហរណ៍ ប្រសិនបើជំហាន B ពឹងផ្អែកលើជំហាន A ដែលត្រូវបានបញ្ចប់ជាមុន នោះ multithreading នឹងបណ្តាលឱ្យមានការព្រួយបារម្ភអំពីការអនុវត្ត និងកំហុសផ្នែកទន់។ ការភ្ជាប់ខ្សែមានភាពរសើបកាន់តែខ្លាំង នៅពេលដែលកម្មវិធីមានភាពស្មុគស្មាញ។
35. នៅក្នុង C# តើអ្វីជាប្រតិភូពហុមុខងារ?
ប្រតិភូពហុមុខងារនៅក្នុង C# ផ្ទុយពីប្រតិភូមូលដ្ឋាន សំដៅលើវិធីសាស្ត្រគោលដៅជាច្រើន។ នៅពេលដែលប្រតិភូពហុមុខងារត្រូវបានប្រើប្រាស់ មុខងារទាំងអស់ដែលចង្អុលទៅដោយប្រតិភូត្រូវបានហៅ។ ពួកវាត្រូវបានអនុវត្តដោយជំនួយពីថ្នាក់ MulticastDelegate របស់ប្រព័ន្ធ។
36. នៅក្នុង C# តើអ្វីជាភាពខុសគ្នារវាងការចងចុង និងការចងដើម?
- ការចងដើមកើតឡើងនៅពេលចងក្រង រីឯការចងយឺតកើតឡើងកំឡុងពេលដំណើរការ។
- ការចងយឺតជាញឹកញាប់គឺយឺតជាងការចងដំបូងចាប់តាំងពីវាកើតឡើងនៅពេលដំណើរការ។
- ផ្ទុយទៅនឹង late binding ដែលប្រើ object ដើម្បីដោះស្រាយការហៅ method ការចងដើមដោះស្រាយការហៅ method ដោយប្រើព័ត៌មានថ្នាក់។
37. ភាពខុសគ្នារវាង Directcast និង Ctype?
ប្រភេទវត្ថុដែលតម្រូវឱ្យប្រភេទពេលរត់ត្រូវនឹងប្រភេទដែលបានបញ្ជាក់ក្នុង DirectCast ត្រូវបានបំប្លែងដោយប្រើ DirectCast ។
នៅពេលដែលការបំប្លែងត្រូវបានបញ្ជាក់រវាងកន្សោម និងប្រភេទមួយ Ctype ត្រូវបានប្រើប្រាស់។
38. តើ HashSet ត្រូវបានប្រើប្រាស់ក្នុង C# យ៉ាងដូចម្តេច?
នៅក្នុង C# HashSet គឺជាបណ្តុំនៃតម្លៃផ្សេងគ្នាដែលមិនមានលំដាប់។ ជាទូទៅ វាត្រូវបានប្រើដើម្បីការពារធាតុស្ទួនពីការបញ្ចូលក្នុងបណ្តុំ ហើយវាដំណើរការបានល្អជាងបញ្ជីនៅក្នុងកិច្ចការនេះ។
ថ្នាក់ HashSet ដែលចុះពីប្រព័ន្ធ ត្រូវបានប្រើដើម្បីអនុវត្តវា។
39. សូមពន្យល់ការបូកបញ្ចូលខ្សែស្រឡាយក្នុង C# ។
នៅក្នុង C#, thread pool គឺជាបណ្តុំនៃ threads ។ ខ្សែស្រលាយទាំងនេះត្រូវបានប្រើប្រាស់ដើម្បីធ្វើកិច្ចការដោយមិនរំខានដល់មុខងាររបស់ខ្សែស្រឡាយបឋម។ ខ្សែស្រឡាយនៅក្នុងបណ្តុំខ្សែស្រឡាយត្រឡប់ទៅក្រុមខ្សែស្រឡាយវិញ នៅពេលដែលវាដំណើរការចប់ហើយ។
ថ្នាក់ប្រព័ន្ធមានថ្នាក់ដែលគ្រប់គ្រងខ្សែស្រឡាយនៅក្នុងក្រុមខ្សែស្រឡាយ និងសកម្មភាពរបស់វា។ ខ្សែស្រឡាយ។ ThreadPool គឺជាចន្លោះឈ្មោះ។
40. តើអ្វីជាភាពខុសគ្នារវាងពាក្យគន្លឹះ Const និង ReadOnly នៅក្នុង C#?
- ReadOnly មិនអាចត្រូវបានប្រកាសនៅក្នុងវិធីសាស្រ្តខណៈពេលដែល Const អាច។
- Const គឺជាថេរវេលាចងក្រង ចំណែក ReadOnly គឺជាថេរវេលារត់។
- តម្លៃ ReadOnly អាចត្រូវបានផ្លាស់ប្តូរ ប៉ុន្តែតម្លៃ Const មិនអាចទេ។
41. តើព័ត៌មានលម្អិតអ្វីខ្លះដែលទាក់ទងនឹងឯកសារ C# XSD អ្នកអាចផ្តល់?
XSD តំណាងឱ្យនិយមន័យគ្រោងការណ៍ XML ។ ប្រសិនបើគ្មានឯកសារ XSD ត្រូវបានភ្ជាប់ជាមួយឯកសារ XML ទេ វាអាចមានគុណលក្ខណៈ ធាតុ និងស្លាកណាមួយ។ ឯកសារ XSD ផ្តល់នូវក្របខ័ណ្ឌសម្រាប់ឯកសារ XML ដោយកំណត់ថាតើសមាសធាតុ និងគុណលក្ខណៈអ្វីខ្លះដែលគួរមានវត្តមាននៅក្នុងឯកសារ XML ក៏ដូចជាលំដាប់របស់វា។
42. តើ Get and Set Accessor properties មានន័យយ៉ាងណាចំពោះអ្នក?
នៅក្នុង C# Get and Set ត្រូវបានគេហៅថា accessors ចាប់តាំងពីពួកវាត្រូវបានបង្កើតឡើងដោយប្រើលក្ខណៈសម្បត្តិ។ ទ្រព្យសម្បត្តិអនុញ្ញាតឱ្យអាន និងសរសេរទៅតម្លៃនៃវាលឯកជន។ វាលឯកជនបែបនេះត្រូវបានចូលប្រើតាមរយៈឧបករណ៍ប្រើប្រាស់។
ខណៈពេលដែល Get property ត្រូវបានប្រើដើម្បីត្រឡប់តម្លៃនៃទ្រព្យមួយនោះ Set property ត្រូវបានប្រើដើម្បីកំណត់តម្លៃ។
43. តើការចាក់ថ្នាំអាស្រ័យនៅក្នុង C# គឺជាអ្វី?
Dependency Injection (DI) គឺជាបច្ចេកទេសរចនានៅក្នុង C# ដែលត្រូវបានប្រើដើម្បីបង្កើតកម្មវិធីដែលមានតំណភ្ជាប់រលុង។ នីតិវិធីនេះផ្ទេរការបង្កើត និងការចងវត្ថុដែលពឹងផ្អែកនៅខាងក្រៅថ្នាក់ដែលពួកវាពឹងផ្អែក។ គោលដៅសំខាន់គឺធ្វើឱ្យការកែប្រែកូដនាពេលអនាគតកាន់តែអាចគ្រប់គ្រងបាន។
សន្និដ្ឋាន
C# គឺជាភាសាសរសេរកម្មវិធីចម្បងដែលត្រូវបានប្រើក្នុងភាសាសរសេរកម្មវិធីកម្រិតខ្ពស់ទាំងអស់។ អ្នកអភិវឌ្ឍន៍ C# មានតម្រូវការខ្លាំង ហើយអាចស្វែងរកឱកាសការងារដ៏គួរឱ្យទាក់ទាញនៅក្នុងឧស្សាហកម្មដូចជា ការអភិវឌ្ឍន៍ផ្នែកខាងមុខ ការសរសេរកម្មវិធីខាងក្រោយ និងការអភិវឌ្ឍន៍កម្មវិធី។ ហើយដោយសារតែ Microsoft គាំទ្រវា ប្រជាប្រិយភាព C# នឹងកើនឡើងតែប៉ុណ្ណោះ។
ខាងលើគឺជាសំណួរសម្ភាសន៍ C# ដ៏សំខាន់បំផុតសម្រាប់អ្នកជំនាញដែលមានបទពិសោធន៍ និងអ្នកចាប់ផ្តើមដំបូង។ សូមមើល ស៊េរីសម្ភាសន៍របស់ Hashdork សម្រាប់ជំនួយក្នុងការរៀបចំសម្ភាសន៍។
សូមផ្ដល់យោបល់