Змест[Схаваць][Паказаць]
- 1. Што такое C#?
- 2. Што адрознівае C# ад C?
- 3. Што такое клас?
- 4. Што такое аб'ект?
- 5. Якая розніца паміж тэрмінамі static, public і void?
- 6. Азначэнне канструктараў.
- 7. Што такое C# у зборцы смецця?
- 8. Што менавіта азначае структура ў C#?
- 9. Як кампілюецца код C#?
- 10. Ясна апішыце розныя класы C#.
- 11. Што такое зубчастыя масівы?
- 12. У чым розніца паміж параметрамі out і ref?
- 13. Што такое дэструктар у C#?
- 14. Што такое індэксатар у C#?
- 15. У чым розніца паміж кіраваным і некіраваным кодам?
- 16. Апішыце серыялізацыю.
- 17. Як у C# палі і ўласцівасці адрозніваюцца адзін ад аднаго?
- 18. Як вы можаце падрабязна апісаць выкарыстанне аператараў у C#?
- 19. Як бы вы рэалізавалі мноства інтэрфейсаў з аднолькавым імем метаду ў адным класе?
- 20. Якая розніца паміж Task і Thread у C#?
- 21. Што такое функцыя finalize ў C#?
- 22. Зрабіце адрозненне паміж блокамі фіналізацыі і фіналізацыяй.
- 23. Падрабязна апішыце метад выдалення C#.
- 24. Што такое перагрузка метаду C#? Высвятляць.
- 25. У чым розніца паміж канстантамі і толькі для чытання?
- 26. Што такое кантроль карыстальніка і карыстацкі кантроль?
- 27. Што такое шматадрасны дэлегат у C#?
- 28. Што такое аб'яднанне аб'ектаў у C#?
- 29. Што такое джэнерікі ў C#.NET?
- 30. Ці магчыма перавызначыць прыватны віртуальны метад?
- 31. Розніца паміж перагрузкай метаду і перавызначэннем метаду ў C#?
- 32. Якая розніца паміж String і StringBuilder у C#?
- 33. Што такое дэлегаты?
- 34. Калі трэба выкарыстоўваць шматструменнасць у C#, а калі пазбягаць?
- 35. Што такое шматадрасны дэлегат у C#?
- 36. Якая розніца паміж познім і раннім звязваннем у C#?
- 37. Розніца паміж Directcast і Ctype?
- 38. Як HashSet выкарыстоўваецца ў C#?
- 39. Калі ласка, растлумачце аб'яднанне патокаў у C#.
- 40. У чым розніца паміж ключавымі словамі Const і ReadOnly у C#?
- 41. Якія падрабязнасці адносна файла C# XSD вы можаце даць?
- 42. Што азначаюць для вас уласцівасці атрымаць і ўсталяваць доступ?
- 43. Што такое ўвядзенне залежнасцей у C#?
- заключэнне
C# (раней вядомая як C sharp) - гэта аб'ектна-арыентаваная мова праграмавання, якая часта выкарыстоўваецца распрацоўшчыкамі для выканання некалькіх дзеянняў і дасягнення некалькіх мэтаў.
Аб'ектна-арыентаваныя мовы праграмавання, такія як C++, Python і Java, бываюць розных варыянтаў. Гэтыя мовы праграмавання распрацаваны для функцыянавання ўнутры пэўнай структуры. Падобным чынам C# ствараецца і распрацоўваецца для пэўнай структуры, а менавіта NET.
Фреймворк .NET быў створаны Microsoft. Ён забяспечвае шырокую платформу для распрацоўкі прыкладанняў, дэкларацый, інструкцый па ўжыванні і гэтак далей. C# можна выкарыстоўваць для вэб-распрацоўкі, гульняў, Мабільныя прыкладання, праграмы Windows і іншыя падобныя праекты.
З такімі перавагамі выкарыстанне C# пашырылася, а патрэба ў спецыялістах, якія могуць яго дакладна выкарыстоўваць, падвоілася. Таму што C# вельмі папулярны мова праграмавання, мноства буйных і малых фірмаў будуюць сваю прадукцыю на ім.
Такім чынам, практыкуйцеся з пытаннямі C# базавага і прасунутага ўзроўню, каб атрымаць поспех у інтэрв'ю.
1. Што такое C#?
Microsoft C# - гэта сучасная праграма агульнага прызначэння, аб'ектна-арыентаванае праграмаванне мове. C# прызначаны для інфраструктуры Common Language Infrastructure (CLI), якая змяшчае выкананы код і асяроддзе выканання, якое дазваляе выкарыстоўваць шматлікія мовы высокага ўзроўню ў розных камп'ютэрных сістэмах і архітэктурах.
2. Што адрознівае C# ад C?
C звычайна вядомы як працэдурная мова, тады як C# больш аб'ектна-арыентаваны. Галоўнае адрозненне ў тым, што C# дазваляе аўтаматызаваны збор смецця праз агульнамоўнае асяроддзе выканання (CLR), у той час як C не дазваляе. Для працы C# патрабуецца платформа .NET, у той час як C з'яўляецца платформа-незалежнай мовай.
3. Што такое клас?
Клас служыць шаблонам для стварэння аб'ектаў. Разам з тэхнікай, ён мае атрыбуты. З аднаго класа мы можам стварыць некалькі асобнікаў аб'екта.
4. Што такое аб'ект?
Экземпляр класа, вядомы як аб'ект, - гэта тое, як мы атрымліваем доступ да функцый класа. Каб пабудаваць аб'ект, мы можам выкарыстоўваць ключавое слова «новы». Функцыі, члены дадзеных і паводзіны класа, які стварае аб'ект у памяці, захоўваюцца.
5. Якая розніца паміж тэрмінамі static, public і void?
У любым месцы праграмы можна атрымаць доступ да агульнадаступных зменных. Да статычных зменных можна атрымаць глабальны доступ без неабходнасці стварэння асобніка класа. У C# мадыфікатар тыпу Void выкарыстоўваецца для ўказання тыпу вяртання метаду.
6. Азначэнне канструктараў.
Канструктар - гэта спецыфічная для класа функцыя-член. Калі аб'ект фармуецца, канструктар выклікаецца аўтаматычна. Клас стварае ўсе значэнні членаў дадзеных па меры ініцыялізацыі.
7. Што такое C# у зборцы смецця?
Працэс ачысткі памяці, якая была занята непажаданымі элементамі, вядомы як збор смецця. Пэўны аб'ём памяці аўтаматычна прызначаецца аб'екту класа, калі ён ствараецца ў кучы памяці. Цяпер, калі вы скончылі працу над элементам, месца ў памяці, якое ён раней займаў, будзе выдаткавана. Трэба вызваліць памяць.
8. Што менавіта азначае структура ў C#?
У C# структура - гэта тып даных, які складаецца з мноства тыпаў даных, такіх як метады, палі, канструктары, канстанты, уласцівасці, індэксатары, аператары і нават іншыя структуры. Структура дапамагае ў кансалідацыі многіх тыпаў даных у адзіны блок. Такім чынам, яны падобныя на курсы. Структуры - гэта тыпы значэнняў, а класы - гэта тыпы спасылак.
9. Як кампілюецца код C#?
Пры стварэнні праекта зыходны код C# кампілюецца ў прамежкавую мову (IL). IL - гэта набор інструкцый, які стварае машынны код для выканання на машынным працэсары. Код адпраўляецца ад прэпрацэсара да кампілятара, затым да асэмблера і, нарэшце, да кампаноўшчыка ў чатыры этапы.
10. Ясна апішыце розныя класы C#.
- Static: гэта тып класа, які не можа быць створаны, таму мы не можам выкарыстоўваць ключавое слова new, каб стварыць з яго аб'ект, але мы можам выклікаць членаў класа непасрэдна, выкарыстоўваючы іх імя класа.
- Анатацыя: каб вызначыць абстрактныя класы, выкарыстоўвайце ключавое слова abstract. Для абстрактных класаў нельга ствараць аб'екты. Ён павінен быць успадкаваны ў падкласе, калі вы хочаце яго выкарыстоўваць. Простыя вызначэнні абстрактных і неабстрактных метадаў дапускаюцца ў абстрактным класе.
- Часткова: гэты клас дазваляе падзяліць вашы ўласцівасці, метады і падзеі на некалькі зыходных файлаў, якія пасля аб'ядноўваюцца ў адзін клас падчас зборкі.
- Запячатаны: Запячатаны клас не можа быць успадкаваны ад іншага класа і мае абмежаваныя характарыстыкі. Мадыфікатары доступу нельга дадаваць у запячатаны клас.
11. Што такое зубчастыя масівы?
Масіў з элементамі масіва называецца зубчастым масівам. Элементы зубчастых масіваў могуць мець розныя формы і памеры.
12. У чым розніца паміж параметрамі out і ref?
Калі вы даяце аргумент у якасці спасылкі, параметр павінен быць ініцыялізаваны перад перадачай у метад. Параметр выхаду, з іншага боку, не павінен ініцыялізавацца перад тым, як яго перадаць у метад.
13. Што такое дэструктар у C#?
Дэструктар - гэта тып метаду ў C#, які з'яўляецца часткай класа. Асноўная функцыя дэструктара - выдаляць асобнікі класа, калі яны больш не патрэбныя, каб вызваліць памяць. Дэструктары часам вядомыя як фіналізатары.
14. Што такое індэксатар у C#?
Індэксатары выкарыстоўваюцца ў C# для пошуку асобнікаў класа або структуры. Такім чынам, да індэксаваных значэнняў можна атрымаць доступ, як і да масіва, але без неабходнасці відавочнага дэкларавання тыпу або члена асобніка.
15. У чым розніца паміж кіраваным і некіраваным кодам?
Кіраваны код дазваляе запускаць код у платформе .NET у кіраваным асяроддзі выканання CLR.
Кантраляваны код выконваецца ў кіраваным асяроддзі выканання, а не ў аперацыйнай сістэме. Прадастаўляе розныя паслугі, такія як зборшчык смецця, апрацоўка выключэнняў і гэтак далей.
Некіравальны код - гэта код, які не выконваецца ў CLR і працуе па-за рамкамі .NET. Яны не забяспечваюць моўныя паслугі высокага ўзроўню і таму працуюць без іх. C++ - адзін з такіх прыкладаў.
16. Апішыце серыялізацыю.
Паток байтаў павінен быць створаны з элемента, каб перадаць яго па сетцы. Серыялізацыя - гэта дзеянне пераўтварэння элемента ў паток байтаў. Інтэрфейс серыялізацыі павінен быць рэалізаваны, каб элемент можна было серыялізаваць. Супрацьлегласць пабудове аб'екта з патоку байтаў называецца дэсерыялізацыяй.
17. Як у C# палі і ўласцівасці адрозніваюцца адзін ад аднаго?
Поле - гэта член класа або аб'ект любога роду, які служыць месцам для захоўвання даных, тады як уласцівасць - гэта член класа, які прапануе метад для чытання, запісу і вылічэння значэння прыватнага поля.
18. Як вы можаце падрабязна апісаць выкарыстанне аператараў у C#?
Заява using выкарыстоўваецца для абмежавання выкарыстання аднаго або некалькіх рэсурсаў у дадатку. Рэсурсы спажываюцца і вызваляюцца на пастаяннай аснове.
Асноўная задача гэтай заявы - кіраваць непажаданымі рэсурсамі і аўтаматычна іх вызваляць. Пасля таго, як аб'ект, які выкарыстоўвае рэсурс, сфарміраваны, пераканайцеся, што функцыя распараджэння аб'екта выклікаецца для вызвалення рэсурсаў, неабходных гэтаму аб'екту; тут выкарыстанне аператараў спатрэбіцца.
19. Як бы вы рэалізавалі мноства інтэрфейсаў з аднолькавым імем метаду ў адным класе?
Каб рэалізаваць некалькі інтэрфейсаў з аднолькавым імем метаду, пазбягайце іх рэалізацыі ў целе функцыі. Замест гэтага вы б паказалі назву інтэрфейсу непасрэдна ў целе метаду. Кампілятар распазнае, на якія метады інтэрфейсу спасылаюцца, вырашаючы праблему.
20. Якая розніца паміж Task і Thread у C#?
Паток - гэта рэальны паток аперацыйнай сістэмы са сваім уласным стэкам і рэсурсамі ядра. Тэма забяспечвае найбольшы кантроль. Паток дазваляе вам спыніць (), прыпыніць () або аднавіць (). Можна назіраць за статусам патоку або задаваць яго атрыбуты, такія як памер стэка, стан кватэры і культура. CLR захоўвае пул патокаў, абгорнутых ThreadPool.
Паралельная бібліятэка задач мае клас пад назвай Task. У адрозненне ад ThreadPool, Task не мае ўласнага патоку аперацыйнай сістэмы. Задачы выконваюцца TaskScheduler, хоць планавальнік па змаўчанні выконваецца ThreadPool. Можна атрымаць апавяшчэнне аб выкананні задання і атрымаць вынік.
21. Што такое функцыя finalize ў C#?
Клас аб'екта, які выкарыстоўваецца для ачысткі, вызначае функцыю finalize (). Калі спасылка на аб'ект не выкарыстоўваецца на працягу доўгага перыяду часу, зборшчык смецця часта выклікае гэтую функцыю.
Зборшчык смецця аўтаматычна вызваляе кантраляваныя рэсурсы, але калі вы жадаеце вызваліць непатрэбныя рэсурсы, такія як дэскрыптары файлаў, злучэнні для перадачы дадзеных і гэтак далей, вы павінны яўна рэалізаваць функцыю finalize.
22. Зрабіце адрозненне паміж блокамі фіналізацыі і фіналізацыяй.
Гатовы блок выклікаецца пасля таго, як блокі try-and-catch былі завершаны, паколькі ён неабходны для апрацоўкі выключэнняў. Блок кода выконваецца незалежна ад таго, ці было выяўлена выключэнне. Код блока ў цэлым больш чысты.
Метад finalize выклікаецца непасрэдна перад зборкай смецця. Асноўныя абавязкі завершанага метаду - ачысціць некіраваны код, які аўтаматычна запускаецца кожны раз, калі асобнік не выклікаецца паўторна.
23. Падрабязна апішыце метад выдалення C#.
Функцыя disposeof() вызваляе нявыкарыстаныя рэсурсы аб'екта. Нявыкарыстаныя рэсурсы, такія як файлы, злучэнні для перадачы дадзеных і гэтак далей. Гэтая функцыя вызначана ў інтэрфейсе IDisposable, які рэалізуецца класам шляхам аб'яўлення цела інтэрфейсу IDisposable.
Функцыя dispose не выклікаецца аўтаматычна; праграміст павінен рэалізаваць яго ўручную для эфектыўнага выкарыстання рэсурсаў.
24. Што такое перагрузка метаду C#? Высвятляць.
Перагрузка метадаў - гэта тыповы падыход у C#, які выкарыстоўваецца для стварэння шэрагу метадаў з аднолькавымі назвамі і зададзенымі подпісамі. Гэтая працэдура паўтараецца з тым жа класам.
Калі працэдура перагрузкі метаду завершана, кампілятар пачынае аперацыі па выкліку вызначаных дзеянняў на аснове перагрузкі метаду.
25. У чым розніца паміж канстантамі і толькі для чытання?
Пастаянныя зменныя аб'яўляюцца і ініцыялізуюцца падчас кампіляцыі. Пасля гэтага гэтае значэнне нельга будзе змяніць. З іншага боку, толькі для чытання выкарыстоўваецца, калі значэнне было выдзелена падчас выканання.
26. Што такое кантроль карыстальніка і карыстацкі кантроль?
Скампіляваны код выкарыстоўваецца для распрацоўкі карыстальніцкіх элементаў кіравання. Яны могуць быць уключаны ў набор інструментаў і простыя ў выкарыстанні. Перацягваючы гэтыя элементы кіравання, распрацоўшчыкі могуць уключыць іх у свае вэб-формы.
Карыстальніцкія элементы кіравання і файлы, уключаныя ў ASP, вельмі падобныя. Яны таксама простыя ў вырабе. Элементы кіравання карыстальнікам, з іншага боку, нельга дадаць у панэль інструментаў. Іх таксама нельга выцягнуць і выпусціць з яго.
27. Што такое шматадрасны дэлегат у C#?
Шматадрасны дэлегат падтрымлівае спасылкі або адрасы да некалькіх функцый адначасова. Калі мы выклікаем шматадрасны дэлегат, ён таксама выклікае ўсе іншыя функцыі, да якіх ён спасылаецца. Каб выклікаць некалькі метадаў, выкарыстоўвайце ўсю сігнатуру метаду, як і дэлегат. У якасці прыкладу:
28. Што такое аб'яднанне аб'ектаў у C#?
Аб'яднанне аб'ектаў - гэта метад праектавання ў праграмным забеспячэнні, які перапрацоўвае рэчы, а не аднаўляе іх. Ён дасягае гэтага, захоўваючы выбраныя элементы ў пуле і робячы іх даступнымі для выкарыстання, калі іх запытвае праграма. Гэтая працэдура павышае прадукцыйнасць за кошт скарачэння генерацыі непатрэбных аб'ектаў.
29. Што такое джэнерікі ў C#.NET?
Генерыкі выкарыстоўваюцца для стварэння шматразовых класаў кода, каб паменшыць празмернасць кода, павысіць бяспеку тыпу і павысіць хуткасць. Мы можам пабудаваць класы калекцыі з джэнерыкамі.
У Сістэме павінна выкарыстоўвацца агульная прастора імёнаў замест такіх класаў, як ArrayList. Прастора імёнаў для калекцый. Выкарыстанне параметрізаваных тыпаў заахвочваецца джэнерыкамі.
30. Ці магчыма перавызначыць прыватны віртуальны метад?
Прыватны віртуальны метад не можа быць перавызначаны, паколькі ён з'яўляецца прыватным для класа і не можа быць даступны з-за яго межаў.
31. Розніца паміж перагрузкай метаду і перавызначэннем метаду ў C#?
Перавызначэнне метаду - гэта працэс змены фундаментальнага вызначэння вытворнага класа. У выніку гэтай стратэгіі метады вытворнага класа паводзяць сябе па-рознаму.
Перагрузку метадаў, з іншага боку, можна апісаць як акт генерацыі мноства метадаў з аднолькавым імем, але рознымі подпісамі ў адным класе.
32. Якая розніца паміж String і StringBuilder у C#?
Радковы аб'ект нязменны, што азначае, што ён не можа быць зменены пасля стварэння. Любая спроба змяніць радковы аб'ект прывядзе да стварэння новага радковага аб'екта.
З іншага боку, аб'ект канструктара радкоў з'яўляецца падатлівым і можа быць зменены, калі распрацоўшчык лічыць патрэбным.
33. Што такое дэлегаты?
У C++ дэлегаты прынцыпова такія ж, як паказальнікі на функцыі. Адзінае адрозненне паміж імі заключаецца ў тым, што дэлегаты тыпабяспечныя, а паказальнікі на функцыі - не. Дэлегаты неабходныя, таму што яны дазваляюць ствараць агульныя тыпабяспечныя функцыі.
34. Калі трэба выкарыстоўваць шматструменнасць у C#, а калі пазбягаць?
Шматструменнасць, часта вядомая як шматструменнасць, з'яўляецца эфектыўным падыходам для павелічэння хуткасці праграмы, у якой шматлікія дзеянні выконваюцца адначасова. Гэта дазваляе розным патокам выконваць незалежна адзін ад аднаго, а не чакаць завяршэння папярэдняга кроку. Гэта можа павялічыць тэмп праграмы.
Аднак, калі некалькі працэсаў праграмы ўзаемазвязаны, шматструменнасць не рэкамендуецца. Напрыклад, калі б этап B залежаў ад этапу A, які быў завершаны першым, шматструменнасць выклікала б праблемы з прадукцыйнасцю і памылкі праграмнага забеспячэння. Патокі становяцца ўсё больш адчувальнымі па меры ўскладнення праграмы.
35. Што такое шматадрасны дэлегат у C#?
Шматадрасны дэлегат у C#, у адрозненне ад базавага дэлегата, адносіцца да шматлікіх мэтавых метадаў. Калі выкарыстоўваецца шматадрасны дэлегат, выклікаюцца ўсе функцыі, на якія паказвае дэлегат. Яны рэалізуюцца з дапамогай сістэмнага класа MulticastDelegate.
36. Якая розніца паміж познім і раннім звязваннем у C#?
- Ранняе звязванне адбываецца падчас кампіляцыі, а позняе - падчас выканання.
- Позняе звязванне часта адбываецца больш павольна, чым ранняе, паколькі яно адбываецца падчас выканання.
- У адрозненне ад позняга звязвання, якое выкарыстоўвае аб'ект для вырашэння выклікаў метадаў, ранняе звязванне развязвае выклікі метадаў з дапамогай інфармацыі аб класе.
37. Розніца паміж Directcast і Ctype?
Тып аб'екта, які патрабуе, каб тып часу выканання адпавядаў вызначанаму тыпу ў DirectCast, пераўтворыцца з дапамогай DirectCast.
Калі вызначана пераўтварэнне паміж выразам і тыпам, выкарыстоўваецца Ctype.
38. Як HashSet выкарыстоўваецца ў C#?
У C# HashSet - гэта неўпарадкаваная калекцыя розных значэнняў. Увогуле, ён выкарыстоўваецца для прадухілення ўстаўкі дублікатаў элементаў у калекцыю і выконвае гэтую задачу лепш, чым спіс.
Для яго рэалізацыі выкарыстоўваецца клас HashSet, які паходзіць ад System.
39. Калі ласка, растлумачце аб'яднанне патокаў у C#.
У C# пул патокаў - гэта набор патокаў. Гэтыя патокі выкарыстоўваюцца для выканання задач без умяшання ў функцыянальнасць асноўнага патоку. Паток у пуле патокаў вяртаецца ў пул патокаў, калі ён скончыў працу.
Клас 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. Што азначаюць для вас уласцівасці атрымаць і ўсталяваць доступ?
У C# Get і Set называюцца аксэсорамі, паколькі яны створаны з выкарыстаннем уласцівасцей. Уласцівасць дазваляе чытаць і запісваць значэнне прыватнага поля. Доступ да такіх прыватных палёў ажыццяўляецца праз аксэсоры.
У той час як уласцівасць Get выкарыстоўваецца для вяртання значэння ўласцівасці, уласцівасць Set выкарыстоўваецца для ўстанаўлення значэння.
43. Што такое ўвядзенне залежнасцей у C#?
Ін'екцыя залежнасцей (DI) - гэта метад праектавання ў C#, які выкарыстоўваецца для стварэння слаба звязанага праграмавання. Гэтая працэдура пераносіць стварэнне і звязванне залежных аб'ектаў за межы класа, на які яны абапіраюцца. Асноўная мэта - зрабіць будучыя змены кода больш кіраванымі.
заключэнне
C# - асноўная мова праграмавання, якая выкарыстоўваецца ва ўсіх мовах праграмавання больш высокага ўзроўню. Распрацоўшчыкі C# карыстаюцца вялікім попытам і могуць знайсці прывабныя перспектывы кар'ернага росту ў такіх галінах, як інтэрфейсная распрацоўка, сервернае праграмаванне і распрацоўка дадаткаў. І паколькі Microsoft падтрымлівае яго, папулярнасць C# будзе толькі расці.
Вышэйзгаданыя пытанні з'яўляюцца найбольш важнымі для інтэрв'ю C# для вопытных прафесіяналаў і пачаткоўцаў. Глядзіце Серыя інтэрв'ю Хашдорка за дапамогу ў падрыхтоўцы да сумоўя.
Пакінуць каментар