სარჩევი[დამალვა][ჩვენება]
- 1. კონკრეტულად რა არის C#?
- 2. რა განასხვავებს C#-ს C-სგან?
- 3. კონკრეტულად რა არის კლასი?
- 4. კონკრეტულად რა არის ობიექტი?
- 5. რა განსხვავებაა ტერმინებს შორის static, public და void?
- 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. რა არის finalize ფუნქცია C#-ში?
- 22. გააკეთეთ განსხვავება საბოლოო ბლოკებსა და დასრულებას შორის.
- 23. დეტალურად აღწერეთ C# dispose მეთოდი.
- 24. რა არის C# მეთოდის გადატვირთვა? გაარკვიე.
- 25. რა განსხვავებაა მხოლოდ წასაკითხად და მუდმივებს შორის?
- 26. რა არის მომხმარებლის კონტროლი და მორგებული კონტროლი?
- 27. C#-ში რა არის multicast დელეგატი?
- 28. კონკრეტულად რა არის ობიექტის გაერთიანება C#-ში?
- 29. კონკრეტულად რა არის ჯენერიკა C#.NET-ში?
- 30. შესაძლებელია თუ არა კერძო ვირტუალური მეთოდის უგულებელყოფა?
- 31. განასხვავებთ მეთოდის გადატვირთვას და მეთოდის გადატვირთვას C#-ში?
- 32. C#-ში რა განსხვავებაა String-სა და StringBuilder-ს შორის?
- 33. კონკრეტულად რა არის დელეგატები?
- 34. როდის უნდა გამოიყენო მულტირედინგი C#-ში და როდის უნდა მოერიდო მას?
- 35. C#-ში რა არის multicast დელეგატი?
- 36. C#-ში რა განსხვავებაა გვიან და ადრეულ შეკვრას შორის?
- 37. განასხვავებთ Directcast-სა და Ctype-ს?
- 38. როგორ გამოიყენება HashSet C#-ში?
- 39. გთხოვთ ახსნათ Thread Pooling 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 შეიქმნა microsoft. ის უზრუნველყოფს უზარმაზარ პლატფორმას აპლიკაციების, დეკლარაციების, განაცხადის ინსტრუქციების და ა.შ. C# შეიძლება გამოყენებულ იქნას ვებ განვითარებისთვის, თამაშებისთვის, მობილური apps, windows აპლიკაციები და სხვა მსგავსი პროექტები.
ასეთი უპირატესობებით, გაფართოვდა C#-ის გამოყენება და გაორმაგდა სპეციალისტების საჭიროება, რომლებსაც შეუძლიათ მისი ზუსტად გამოყენება. იმის გამო, რომ C# ძალიან პოპულარულია პროგრამირების ენამასზე დაფუძნებულია მსხვილი და მცირე ფირმათა სიმრავლე.
ასე რომ, ივარჯიშეთ საბაზისო და მოწინავე დონის C# კითხვებზე ინტერვიუებისთვის.
1. კონკრეტულად რა არის C#?
Microsoft C# არის თანამედროვე, ზოგადი დანიშნულების, ობიექტზე ორიენტირებული პროგრამირება ენა. C# განკუთვნილია საერთო ენის ინფრასტრუქტურისთვის (CLI), რომელიც მოიცავს შესრულებად კოდს და გაშვების გარემოს, რომელიც საშუალებას იძლევა გამოიყენოს მრავალი მაღალი დონის ენა მრავალფეროვან კომპიუტერულ სისტემასა და არქიტექტურაზე.
2. რა განასხვავებს C#-ს C-სგან?
C ჩვეულებრივ ცნობილია, როგორც პროცედურული ენა, ხოლო C# უფრო ობიექტზე ორიენტირებულია. მთავარი განსხვავება ისაა, რომ C# იძლევა ნაგვის ავტომატური შეგროვების საშუალებას Common Language Runtime-ის (CLR) საშუალებით, ხოლო C არა. C#-ს სჭირდება.NET Framework გასაშვებად, ხოლო C არის პლატფორმისგან დამოუკიდებელი ენა.
3. კონკრეტულად რა არის კლასი?
კლასი ემსახურება როგორც შაბლონს ობიექტების შესაქმნელად. ტექნიკასთან ერთად მას აქვს ატრიბუტები. ერთი კლასიდან შეგვიძლია შევქმნათ ობიექტის რამდენიმე მაგალითი.
4. კონკრეტულად რა არის ობიექტი?
კლასის მაგალითი, რომელიც ცნობილია როგორც ობიექტი, არის ის, თუ როგორ მივიღებთ წვდომას კლასის ფუნქციონალებზე. ობიექტის ასაგებად შეგვიძლია გამოვიყენოთ „ახალი“ საკვანძო სიტყვა. ინახება ფუნქციები, მონაცემთა წევრები და კლასის ქცევა, რომელიც აწარმოებს ობიექტს მეხსიერებაში.
5. რა განსხვავებაა ტერმინებს შორის static, public და void?
პროგრამის ნებისმიერ ადგილას შეუძლია საჯაროდ განსაზღვრულ ცვლადებზე წვდომა. სტატიკური ცვლადების გლობალურად წვდომა შესაძლებელია კლასის ინსტანციის აგების მოთხოვნის გარეშე. C#-ში, ტიპის მოდიფიკატორი სახელწოდებით Void გამოიყენება მეთოდის დაბრუნების ტიპის მითითებისთვის.
6. განსაზღვრეთ კონსტრუქტორები.
კონსტრუქტორი არის კლასის სპეციფიკური წევრი ფუნქცია. როდესაც ობიექტი იქმნება, კონსტრუქტორი ავტომატურად გამოიძახება. კლასი აყალიბებს მონაცემთა წევრების ყველა მნიშვნელობას მისი ინიციალიზაციისას.
7. რა არის C# ნაგვის შეგროვებაში?
მეხსიერების გაწმენდის პროცესი, რომელიც დაკავებულია არასასურველი ნივთებით, ცნობილია როგორც ნაგვის შეგროვება. მეხსიერების გარკვეული რაოდენობა ავტომატურად ენიჭება კლასის ობიექტს, როდესაც ის იქმნება გროვის მეხსიერებაში. ახლა, როდესაც დაასრულეთ ერთეულზე მუშაობა, მეხსიერების სივრცე, რომელიც ადრე იყო დაკავებული, იკარგება. მეხსიერება უნდა განთავისუფლდეს.
8. კონკრეტულად რას ნიშნავს სტრუქტურა C#-ში?
C#-ში სტრუქტურა არის მონაცემთა ტიპი, რომელიც შედგება მონაცემთა მრავალრიცხოვანი ტიპებისგან, როგორიცაა მეთოდები, ველები, კონსტრუქტორები, მუდმივები, თვისებები, ინდექსატორები, ოპერატორები და კიდევ სხვა სტრუქტურები. სტრუქტურა ეხმარება მრავალი სახის მონაცემთა ერთ ერთეულში გაერთიანებას. ამ გზით ისინი კურსების ანალოგია. სტრუქტურები არის მნიშვნელობის ტიპები, ხოლო კლასები არის საცნობარო ტიპები.
9. როგორ ხდება C# კოდის შედგენა?
როდესაც პროექტი იქმნება, C# წყაროს კოდი შედგენილია შუალედურ ენაში (IL). IL არის ინსტრუქციების კრებული, რომელიც წარმოქმნის მანქანის კოდს მანქანის პროცესორზე შესასრულებლად. კოდი იგზავნება წინასწარი პროცესორიდან კომპილერში, შემდეგ ასამბლერში და ბოლოს ლინკერში ოთხ ეტაპად.
10. ნათლად აღწერეთ C# კლასები.
- სტატიკური: ეს არის კლასის ტიპი, რომლის ინსტალაციაც შეუძლებელია, ამიტომ ჩვენ არ შეგვიძლია გამოვიყენოთ ახალი საკვანძო სიტყვა მისი ობიექტის შესაქმნელად, მაგრამ შეგვიძლია კლასის წევრების გამოძახება პირდაპირ მათი კლასის სახელის გამოყენებით.
- აბსტრაქტი: აბსტრაქტული კლასების განსაზღვრისთვის გამოიყენეთ აბსტრაქტული საკვანძო სიტყვა. აბსტრაქტული კლასებისთვის ობიექტების შექმნა შეუძლებელია. ის უნდა იყოს მემკვიდრეობით მიღებული ქვეკლასში, თუ გსურთ მისი გამოყენება. აბსტრაქტული და არააბსტრაქტული მეთოდების მარტივი განმარტებები დასაშვებია Abstract კლასში.
- ნაწილობრივი: ეს კლასი საშუალებას გაძლევთ გამოყოთ თქვენი თვისებები, მეთოდები და მოვლენები რამდენიმე წყაროს ფაილად, რომლებიც შემდგომში გაერთიანებულია ერთ კლასში აშენების დროს.
- დალუქული: დალუქული კლასი არ შეიძლება იყოს მემკვიდრეობით სხვა კლასისგან და აქვს შეზღუდული მახასიათებლები. წვდომის მოდიფიკატორები ვერ დაემატება დალუქულ კლასს.
11. კონკრეტულად რა არის Jagged Arrays?
მასივი მასივის ელემენტებით მოიხსენიება, როგორც დაკბილული მასივი. დაკბილული მასივების ელემენტები შეიძლება იყოს მრავალი ფორმისა და ზომის.
12. რა განსხვავებაა out და ref პარამეტრებს შორის?
არგუმენტის ref-ად მიცემისას, პარამეტრი უნდა იყოს ინიციალირებული, სანამ მეთოდს გადაეცემა. მეორეს მხრივ, out პარამეტრი არ საჭიროებს ინიციალიზაციას მეთოდზე მიწოდებამდე.
13. C#-ში რა არის დესტრუქტორი?
დესტრუქტორი არის მეთოდის ტიპი C#-ში, რომელიც კლასის ნაწილია. დესტრუქტორის ძირითადი ფუნქციაა წაშალოს კლასის შემთხვევები, როდესაც ისინი აღარ არის საჭირო მეხსიერების გასათავისუფლებლად. დესტრუქტორებს ზოგჯერ ფინალიზატორებს უწოდებენ.
14. C#-ში რა არის ინდექსატორი?
ინდექსატორები გამოიყენება C#-ში კლასის ან სტრუქტურის მაგალითების მოსაძებნად. ამიტომ, ინდექსირებული მნიშვნელობები შეიძლება იყოს წვდომა მასივის მსგავსად, მაგრამ არ არის საჭირო ცალსახად გამოაცხადოთ ტიპი ან ინსტანციის წევრი.
15. რა განსხვავებაა მართულ და არამართულ კოდს შორის?
მართული კოდი საშუალებას გაძლევთ გაუშვათ კოდი.NET ჩარჩოში მართულ CLR გაშვების გარემოში.
კონტროლირებადი კოდი ახორციელებს მართულ გაშვების გარემოს და არა ოპერაციულ სისტემას. გთავაზობთ სხვადასხვა სახის მომსახურებას, როგორიცაა ნაგვის შემგროვებელი, გამონაკლისების დამუშავება და ა.შ.
უმართავი კოდი არის კოდი, რომელიც არ სრულდება CLR-ზე და მუშაობს.NET ფრეიმერიკზე მიღმა. ისინი არ აწვდიან მაღალი დონის ენობრივ სერვისებს და შესაბამისად მოქმედებენ მათ გარეშე. C++ ერთ-ერთი ასეთი მაგალითია.
16. აღწერეთ სერიალიზაცია.
ელემენტიდან უნდა შეიქმნას ბაიტების ნაკადი, რათა ის გადავიდეს ქსელში. სერიალიზაცია არის ელემენტის ბაიტების ნაკადად გარდაქმნის აქტი. Serialize ინტერფეისი უნდა იყოს დანერგილი იმისათვის, რომ ელემენტი იყოს სერიული. ბაიტების ნაკადიდან ობიექტის აგების საპირისპიროს ეწოდება დესერიიზაცია.
17. C#-ში როგორ განსხვავდება ველები და თვისებები ერთმანეთისგან?
ველი არის კლასის წევრი ან ნებისმიერი სახის ობიექტი, რომელიც ემსახურება მონაცემთა შენახვის ადგილს, ხოლო თვისება არის კლასის წევრი, რომელიც გთავაზობთ მეთოდს პირადი ველის წაკითხვის, ჩაწერისა და გამოთვლისთვის.
18. როგორ შეგიძლიათ დეტალურად აღწეროთ განცხადებების გამოყენება C#-ში?
გამოყენების განცხადება გამოიყენება აპლიკაციის შიგნით ერთი ან მეტი რესურსის გამოყენების შეზღუდვისთვის. რესურსები იხარჯება და გამოიყოფა მუდმივად.
ამ განცხადების მთავარი ამოცანაა არასასურველი რესურსების მართვა და მათი ავტომატურად გამოშვება. მას შემდეგ, რაც ობიექტი, რომელიც იყენებს რესურსს, ჩამოყალიბდება, დარწმუნდით, რომ ობიექტის განკარგვის ფუნქცია გამოიძახება ამ ობიექტისთვის საჭირო რესურსების გასათავისუფლებლად; აქ არის ის, სადაც განცხადებების გამოყენება გამოდგება.
19. როგორ დანერგავდით მრავალ ინტერფეისს ერთი და იგივე მეთოდის სახელწოდებით იმავე კლასში?
რამდენიმე ინტერფეისის ერთი და იგივე მეთოდის სახელის განსახორციელებლად, მოერიდეთ მათ განხორციელებას ფუნქციის სხეულში. ამის ნაცვლად, თქვენ მიუთითებთ ინტერფეისის სახელს პირდაპირ მეთოდის სხეულში. შემდგენელი ამოიცნობს, რომელ ინტერფეისის მეთოდებზეა მითითებული, პრობლემის მოგვარებაში.
20. C#-ში რა განსხვავებაა Task-სა და Thread-ს შორის?
Thread არის რეალური ოპერაციული სისტემის თემა თავისი სტეკის და ბირთვის რესურსებით. თემა უზრუნველყოფს ყველაზე მეტ კონტროლს. თემა საშუალებას გაძლევთ შეაჩეროთ (), შეაჩეროთ () ან განაახლოთ (). Thread-ის სტატუსის დაკვირვება ან მისი ატრიბუტების, როგორიცაა სტეკის ზომა, ბინის მდგომარეობა და კულტურა, შეიძლება დაყენდეს. CLR ინახავს ThreadPool-ის მიერ გახვეულ ძაფების აუზს.
დავალების პარალელურ ბიბლიოთეკას აქვს კლასი სახელწოდებით Task. ThreadPool-ისგან განსხვავებით, Task-ს არ აქვს საკუთარი ოპერაციული სისტემის თემა. ამოცანები შესრულებულია TaskScheduler-ის მიერ, თუმცა ნაგულისხმევი განრიგის შესრულებული ThreadPool-ის მიერ. შესაძლებელია ეცნობოს დავალების დასრულებისას და შედეგის მიღებას.
21. რა არის finalize ფუნქცია C#-ში?
ობიექტის კლასი, რომელიც გამოიყენება დასუფთავების მოქმედებებისთვის, განსაზღვრავს finalize () ფუნქციას. როდესაც ობიექტზე მითითება არ გამოიყენება დიდი ხნის განმავლობაში, ნაგვის შემგროვებელი ხშირად გამოიძახებს ამ ფუნქციას.
ნაგვის შემგროვებელი ავტომატურად ათავისუფლებს კონტროლირებად რესურსებს, მაგრამ თუ გსურთ გაათავისუფლოთ არასაჭირო რესურსები, როგორიცაა ფაილების სახელურები, მონაცემთა კავშირები და ა.შ., თქვენ მკაფიოდ უნდა განახორციელოთ საბოლოო ფუნქცია.
22. გააკეთეთ განსხვავება საბოლოო ბლოკებსა და დასრულებას შორის.
დასრულებული ბლოკი გამოიძახება ცდა-და-დაჭერის ბლოკების დასრულების შემდეგ, რადგან ის საჭიროა გამონაკლისების დამუშავებისთვის. კოდის ბლოკი შესრულებულია იმისდა მიუხედავად, დაიჭირეს თუ არა გამონაკლისი. ბლოკის კოდი ზოგადად უფრო სუფთაა.
საბოლოო მეთოდი გამოიყენება ნაგვის შეგროვების წინ. დასრულებული მეთოდის მთავარი პასუხისმგებლობაა უმართავი კოდის გასუფთავება, რომელიც ავტომატურად ამოქმედდება ნებისმიერ დროს, როცა ეგზემპლარის ხელახლა გამოძახება არ მოხდება.
23. დეტალურად აღწერეთ C# dispose მეთოდი.
disposeof() ფუნქცია ათავისუფლებს ობიექტის გამოუყენებელ რესურსებს. გამოუყენებელი რესურსები, როგორიცაა ფაილები, მონაცემთა კავშირები და ა.შ. ეს ფუნქცია მითითებულია IDisposable ინტერფეისში, რომელსაც კლასი ახორციელებს ინტერფეისის IDisposable სხეულის გამოცხადებით.
განკარგვის ფუნქცია ავტომატურად არ არის გამოძახებული; პროგრამისტმა უნდა განახორციელოს ის ხელით რესურსების ეფექტური გამოყენებისთვის.
24. რა არის C# მეთოდის გადატვირთვა? გაარკვიე.
მეთოდის გადატვირთვა არის ტიპიური მიდგომა C#-ში, რომელიც გამოიყენება მრავალი მეთოდის ასაგებად იმავე სახელწოდებით და მითითებული ხელმოწერებით. ეს პროცედურა მეორდება იმავე კლასში.
როდესაც მეთოდის გადატვირთვის პროცედურა დასრულდება, შემდგენელი იწყებს ოპერაციებს, რათა გამოიძახოს მითითებული მოქმედებები მეთოდის გადატვირთვის საფუძველზე.
25. რა განსხვავებაა მხოლოდ წასაკითხად და მუდმივებს შორის?
მუდმივი ცვლადები დეკლარირებული და ინიციალიზებულია კომპილაციის დროს. ამის შემდეგ, ეს მნიშვნელობა არ შეიძლება შეიცვალოს. მეორეს მხრივ, მხოლოდ წაკითხვა გამოიყენება მას შემდეგ, რაც მნიშვნელობა გამოიყოფა გაშვების დროს.
26. რა არის მომხმარებლის კონტროლი და მორგებული კონტროლი?
შედგენილი კოდი გამოიყენება საბაჟო კონტროლის შესაქმნელად. ისინი შეიძლება იყოს ინსტრუმენტთა ყუთში და ადვილად გამოსაყენებელია. ამ კონტროლის გადათრევით და ჩამოშვებით, დეველოპერებმა შეიძლება შეიტანონ ისინი ვებ ფორმებში.
მომხმარებლის კონტროლი და ASP-ში შემავალი ფაილები საკმაოდ მსგავსია. ისინი ასევე მარტივი დასამზადებელია. მომხმარებლის კონტროლი, მეორე მხრივ, არ შეიძლება დაემატოს ხელსაწყოთა ყუთს. ასევე არ შეიძლება მათი ამოღება და მისგან ჩამოშვება.
27. C#-ში რა არის multicast დელეგატი?
Multicast დელეგატი ინახავს მითითებებს ან მისამართებს რამდენიმე ფუნქციაზე ერთდროულად. როდესაც ჩვენ გამოვიძახებთ multicast დელეგატს, ის ასევე გამოიძახებს ყველა სხვა ფუნქციას, რომელსაც ის გულისხმობს. რამდენიმე მეთოდის გამოსაძახებლად გამოიყენეთ მთელი მეთოდის ხელმოწერა, ისევე როგორც დელეგატი. Როგორც მაგალითი:
28. კონკრეტულად რა არის ობიექტის გაერთიანება C#-ში?
ობიექტების გაერთიანება არის დიზაინის ტექნიკა პროგრამულ უზრუნველყოფაში, რომელიც ამუშავებს ნივთებს, ვიდრე აღადგენს მათ. ის ამას ახორციელებს არჩეული ელემენტების აუზში შენახვით და მათი გამოყენებისთვის ხელმისაწვდომი, როდესაც აპლიკაცია ითხოვს მათ. ეს პროცედურა აუმჯობესებს შესრულებას არასაჭირო ობიექტების წარმოქმნის შემცირებით.
29. კონკრეტულად რა არის ჯენერიკა C#.NET-ში?
გენერიკა გამოიყენება მრავალჯერადი გამოყენების კოდის კლასების შესაქმნელად, რათა შემცირდეს კოდის სიჭარბე, გაუმჯობესდეს ტიპის უსაფრთხოება და გაუმჯობესდეს სიჩქარე. ჩვენ შეგვიძლია ავაშენოთ კოლექციური კლასები გენერიკებით.
სისტემაში, ზოგადი სახელების სივრცე უნდა იყოს გამოყენებული კლასების ნაცვლად, როგორიცაა ArrayList. სახელების სივრცე კოლექციებისთვის. პარამეტრიზებული ტიპების გამოყენება წახალისებულია გენერიკებით.
30. შესაძლებელია თუ არა კერძო ვირტუალური მეთოდის უგულებელყოფა?
კერძო ვირტუალური მეთოდის გადაფარვა შეუძლებელია, რადგან ის კერძოა კლასისთვის და მისი გარედან წვდომა შეუძლებელია.
31. განასხვავებთ მეთოდის გადატვირთვას და მეთოდის გადატვირთვას C#-ში?
მეთოდის გადაჭარბება არის მიღებული კლასის ფუნდამენტური განმარტების შეცვლის პროცესი. მიღებული კლასის მეთოდები საბოლოოდ სხვაგვარად იქცევა ამ სტრატეგიის შედეგად.
მეორეს მხრივ, მეთოდის გადატვირთვა შეიძლება შეფასდეს, როგორც მრავალი მეთოდის გენერირების აქტი ერთი და იგივე სახელით, მაგრამ განსხვავებული ხელმოწერებით იმავე კლასის ქვეშ.
32. C#-ში რა განსხვავებაა String-სა და StringBuilder-ს შორის?
სტრიქონი ობიექტი უცვლელია, რაც იმას ნიშნავს, რომ მისი შექმნა შეუძლებელია. სიმებიანი ობიექტის შეცვლის ნებისმიერი მცდელობა გამოიწვევს ახალი სტრიქონის ობიექტის შექმნას.
სიმებიანი შემქმნელი ობიექტი, მეორეს მხრივ, არის მოქნილი და შეიძლება შეიცვალოს, როგორც ამას დეველოპერი ხედავს.
33. კონკრეტულად რა არის დელეგატები?
C++-ში დელეგატები ფუნდამენტურად იგივეა, რაც ფუნქციის მაჩვენებლები. ამ ორს შორის ერთადერთი განსხვავება ისაა, რომ დელეგატები უსაფრთხოა ტიპისთვის, ხოლო ფუნქციის მაჩვენებლები არა. დელეგატები აუცილებელია, რადგან ისინი იძლევიან ზოგადი ტიპის უსაფრთხო ფუნქციების აგებას.
34. როდის უნდა გამოიყენო მულტირედინგი C#-ში და როდის უნდა მოერიდო მას?
Multithreading, ხშირად ცნობილი როგორც threading, არის ეფექტური მიდგომა პროგრამის სიჩქარის გასაზრდელად, რომელშიც მრავალი აქტივობა ერთდროულად სრულდება. ის საშუალებას აძლევს სხვადასხვა ძაფებს დამოუკიდებლად შეასრულონ, ვიდრე დაელოდონ წინა ნაბიჯის დასრულებას. მას აქვს შესაძლებლობა გაზარდოს პროგრამის ტემპი.
თუმცა, როდესაც პროგრამის რამდენიმე პროცესი ურთიერთდაკავშირებულია, მულტირედინგი არ არის რეკომენდებული. მაგალითად, თუ ნაბიჯი B დამოკიდებული იყო A ნაბიჯის პირველ დასრულებაზე, მრავალძალიანობა გამოიწვევს მუშაობის შეშფოთებას და პროგრამულ ხარვეზებს. Threading სულ უფრო მგრძნობიარე ხდება პროგრამის სირთულის განვითარებასთან ერთად.
35. C#-ში რა არის multicast დელეგატი?
Multicast დელეგატი C#-ში, საბაზისო დელეგატისგან განსხვავებით, ეხება მრავალ სამიზნე მეთოდს. როდესაც გამოიყენება მრავალხმოვანი დელეგატი, დელეგატის მიერ მითითებული ყველა ფუნქცია გამოიძახება. ისინი დანერგილია სისტემის MulticastDelegate კლასის დახმარებით.
36. C#-ში რა განსხვავებაა გვიან და ადრეულ შეკვრას შორის?
- ადრეული შეკვრა ხდება კომპილაციის დროს, ხოლო გვიან შეკვრა ხდება შესრულების დროს.
- გვიანი შეკვრა ხშირად უფრო ნელია, ვიდრე ადრეული შეკვრა, რადგან ეს ხდება მუშაობის დროს.
- გვიან შეკვრისგან განსხვავებით, რომელიც იყენებს ობიექტს მეთოდის ზარების გადასაჭრელად, ადრეული შეკვრა წყვეტს მეთოდის ზარებს კლასის ინფორმაციის გამოყენებით.
37. განასხვავებთ Directcast-სა და Ctype-ს?
ობიექტის სახეობა, რომელიც მოითხოვს გაშვების დროის ტიპს DirectCast-ში მითითებულ ტიპთან შესატყვისად, გარდაიქმნება DirectCast-ის გამოყენებით.
როდესაც კონვერტაცია მითითებულია გამოხატულებასა და ტიპს შორის, გამოიყენება Ctype.
38. როგორ გამოიყენება HashSet C#-ში?
C#-ში HashSet არის განსხვავებული მნიშვნელობების შეუკვეთავი კოლექცია. ზოგადად, ის გამოიყენება კრებულში დუბლიკატი ელემენტების ჩასმის თავიდან ასაცილებლად და ამ ამოცანისთვის სიაზე უკეთ მუშაობს.
HashSet კლასი, რომელიც წარმოიშვა System-დან, გამოიყენება მის დასანერგად.
39. გთხოვთ ახსნათ Thread Pooling C#-ში.
C#-ში thread pool არის ძაფების კოლექცია. ეს ძაფები გამოიყენება ამოცანების შესასრულებლად პირველადი ძაფების ფუნქციონირებაში ჩარევის გარეშე. ძაფი ძაფების აუზში ბრუნდება ძაფის აუზში, როდესაც ის დაასრულებს მუშაობას.
System კლასი შეიცავს კლასებს, რომლებიც ამუშავებენ ძაფს ძაფების აუზში და მის მოქმედებებს. ძაფები. ThreadPool არის სახელთა სივრცე.
40. რა განსხვავებაა Const და ReadOnly საკვანძო სიტყვებს შორის C#-ში?
- ReadOnly არ შეიძლება გამოცხადდეს მეთოდის ფარგლებში, ხოლო Const შეიძლება.
- Const არის კომპილაციის დროის მუდმივი, ხოლო ReadOnly არის გაშვების მუდმივი.
- ReadOnly მნიშვნელობები შეიძლება შეიცვალოს, მაგრამ Const მნიშვნელობები არ შეიძლება.
41. რა დეტალები შეგიძლიათ მოგვაწოდოთ C# XSD ფაილთან დაკავშირებით?
XSD ნიშნავს XML Schema Definition-ს. თუ XSD ფაილი არ არის დაკავშირებული XML ფაილთან, მას შეიძლება ჰქონდეს რაიმე ატრიბუტი, ელემენტი და ტეგი. XSD ფაილი უზრუნველყოფს XML ფაილის ჩარჩოს, რომელიც განსაზღვრავს რა კომპონენტები და ატრიბუტები უნდა იყოს წარმოდგენილი XML ფაილში, ისევე როგორც მათი თანმიმდევრობა.
42. რას ნიშნავს თქვენთვის Get and Set Accessor თვისებები?
C#-ში Get-სა და Set-ს უწოდეს აქსესუარები, რადგან ისინი შექმნილია თვისებების გამოყენებით. თვისება იძლევა პირადი ველის მნიშვნელობის წაკითხვისა და ჩაწერის საშუალებას. ასეთ კერძო ველებზე წვდომა ხდება აქსესუარების საშუალებით.
მიუხედავად იმისა, რომ Get თვისება გამოიყენება ქონების მნიშვნელობის დასაბრუნებლად, Set თვისება გამოიყენება მნიშვნელობის დასაყენებლად.
43. კონკრეტულად რა არის დამოკიდებულების ინექცია C#-ში?
დამოკიდებულების ინექცია (DI) არის დიზაინის ტექნიკა C#-ში, რომელიც გამოიყენება თავისუფლად დაკავშირებული პროგრამირების შესაქმნელად. ეს პროცედურა გადასცემს დამოკიდებული ობიექტების შექმნას და დაკავშირებას იმ კლასის გარეთ, რომელსაც ისინი ეყრდნობიან. მთავარი მიზანია მომავალი კოდის ცვლილებები უფრო მართვადი გახდეს.
დასკვნა
C# არის ძირითადი პროგრამირების ენა, რომელიც გამოიყენება ყველა უმაღლესი დონის პროგრამირების ენაში. C# დეველოპერებს დიდი მოთხოვნილება აქვთ და შეუძლიათ იპოვონ მიმზიდველი კარიერის პერსპექტივები ისეთ ინდუსტრიებში, როგორიცაა ფრონტ-ენდის განვითარება, უკანა პროგრამირება და აპლიკაციების შემუშავება. და რადგან Microsoft მხარს უჭერს მას, C# პოპულარობა მხოლოდ გაიზრდება.
ზემოაღნიშნული არის ყველაზე მნიშვნელოვანი C# ინტერვიუს კითხვები გამოცდილი პროფესიონალებისა და დამწყებთათვის. იხ ჰაშდორკის ინტერვიუს სერია ინტერვიუს მომზადებაში დახმარებისთვის.
დატოვე პასუხი