Преглед садржаја[Сакрити][Прикажи]
- 1. Шта је заправо Ц#?
- 2. Шта разликује Ц# од Ц?
- 3. Шта је заправо класа?
- 4. Шта је заправо објекат?
- 5. Која је разлика између појмова статични, јавни и неважећи?
- 6. Дефинишите конструкторе.
- 7. Шта је Ц# у сакупљању смећа?
- 8. Шта тачно значи структура у Ц#?
- 9. Како се Ц# код компајлира?
- 10. Јасно опишите различите Ц# класе.
- 11. Шта су тачно назубљени низови?
- 12. Која је разлика између параметара оут и реф?
- 13. Шта је деструктор у Ц#?
- 14. Шта је индексер у Ц#?
- 15. Која је разлика између управљаног и неуправљаног кода?
- 16. Опишите серијализацију.
- 17. У Ц#, како се поља и својства разликују једно од другог?
- 18. Како можете детаљно описати коришћење исказа у Ц#?
- 19. Како бисте имплементирали бројне интерфејсе са истим именом методе у истој класи?
- 20. Која је разлика између задатка и нити у Ц#-у?
- 21. Шта је функција финализе у Ц#?
- 22. Направите разлику између блокова финализације и финализације.
- 23. Детаљно опишите Ц# метод диспосе.
- 24. Шта је преоптерећење Ц# методе? Разјаснити.
- 25. Која је разлика између само за читање и константи?
- 26. Шта су корисничка контрола и прилагођена контрола?
- 27. Шта је мултицаст делегат у Ц#?
- 28. Шта је заправо обједињавање објеката у Ц#?
- 29. Шта су заправо генерици у Ц#.НЕТ-у?
- 30. Да ли је могуће заменити приватни виртуелни метод?
- 31. Да ли правите разлику између преоптерећења методе и замене метода у Ц#?
- 32. Која је разлика између Стринг и СтрингБуилдер-а у Ц#?
- 33. Шта су заправо делегати?
- 34. Када би требало да користите вишенитно у Ц#, а када да га избегавате?
- 35. Шта је мултицаст делегат у Ц#?
- 36. Која је разлика између касног и раног везивања у Ц#?
- 37. Да ли разликујете Дирецтцаст и Цтипе?
- 38. Како се ХасхСет користи у Ц#?
- 39. Објасните групирање нити у Ц#.
- 40. Која је разлика између кључних речи Цонст и РеадОнли у Ц#?
- 41. Које детаље у вези са Ц# КССД датотеком можете да пружите?
- 42. Шта за вас значе својства Гет анд Сет Аццессор?
- 43. Шта је тачно убризгавање зависности у Ц#?
- Zakljucak
Ц# (раније познат као Ц оштри) је објектно оријентисани програмски језик који програмери често користе за обављање неколико активности и постизање више циљева.
Објектно оријентисани програмски језици, као што су Ц++, Питхон и Јава, долазе у различитим укусима. Ови програмски језици су дизајнирани да функционишу унутар одређеног оквира. Слично, Ц# је креиран и развијен за одређени оквир, наиме, НЕТ.
.НЕТ фрамеворк је креирао Microsoft . Пружа огромну платформу за развој апликација, декларација, упутстава за апликације и тако даље. Ц# се може користити за веб развој, играње игара, мобилне апликације, виндовс апликације и друге сличне пројекте.
Са таквим предностима, употреба Ц# је проширена, а потреба за стручњацима који могу прецизно да га користе се удвостручила. Зато што је Ц# тако популаран програмски језик, мноштво великих и малих фирми базира своје производе на томе.
Дакле, вежбајте основни и напредни ниво Ц# питања да бисте успели на интервјуима.
1. Шта је заправо Ц#?
Мицрософт Ц# је савремени, опште намене, објектно оријентисано програмирање Језик. Ц# је намењен заједничкој језичкој инфраструктури (ЦЛИ), која се састоји од извршног кода и окружења за извршавање које омогућава употребу бројних језика високог нивоа на различитим рачунарским системима и архитектурама.
2. Шта разликује Ц# од Ц?
Ц је обично познат као процедурални језик, док је Ц# више објектно оријентисан. Главна разлика је у томе што Ц# дозвољава аутоматизовано сакупљање смећа преко Цоммон Лангуаге Рунтиме (ЦЛР), док Ц то не чини. Ц# захтева .НЕТ фрамеворк за покретање, док је Ц језик независан од платформе.
3. Шта је заправо класа?
Класа служи као шаблон за изградњу објеката. Заједно са техникама, има атрибуте. Из једне класе можемо произвести неколико инстанци објекта.
4. Шта је заправо објекат?
Инстанца класе позната као објекат је начин на који приступамо функционалностима класе. Да бисмо конструисали објекат, можемо користити кључну реч „нев“. Функције, чланови података и понашање класе која производи објекат у меморији се чувају.
5. Која је разлика између појмова статични, јавни и неважећи?
Било где у програму може приступити јавно дефинисаним варијаблама. Статичким променљивим се може приступити глобално без потребе за прављењем инстанце класе. У Ц#, модификатор типа који се зове Воид се користи да означи тип враћања методе.
6. Дефинишите конструкторе.
Конструктор је функција члана специфична за класу. Када се формира објекат, конструктор се позива аутоматски. Класа конструише све вредности чланова података како је иницијализована.
7. Шта је Ц# у сакупљању смећа?
Процес чишћења меморије коју су заузеле нежељене ставке познат је као сакупљање смећа. Одређена количина меморије се аутоматски додељује објекту класе када се креира у меморији гомиле. Сада када сте завршили са радом на ставци, меморијски простор који је раније заузимао је изгубљен. Меморија се мора ослободити.
8. Шта тачно значи структура у Ц#?
У Ц#, структура је тип података који се састоји од бројних типова података, као што су методе, поља, конструктори, константе, својства, индексери, оператори, па чак и друге структуре. Структура помаже у консолидацији многих врста података у једну јединицу. На овај начин, они су аналогни курсевима. Структуре су типови вредности, док су класе референтни типови.
9. Како се Ц# код компајлира?
Када се пројекат креира, Ц# изворни код се компајлира у средњи језик (ИЛ). ИЛ је колекција инструкција која генерише машински код за извршење на машинском процесору. Код се шаље од претпроцесора до компајлера, затим асемблеру и на крају линкеру у четири фазе.
10. Јасно опишите различите Ц# класе.
- Статичка: То је врста класе која се не може инстанцирати, стога не можемо користити кључну реч нев да бисмо направили објекат од ње, али можемо директно позвати чланове класе користећи њихово име класе.
- Апстракт: Да бисте дефинисали апстрактне класе, користите кључну реч абстрацт. За апстрактне класе не могу се креирати објекти. Мора бити наслеђен у подкласи ако желите да га користите. Једноставне дефиниције апстрактних и неапстрактних метода су дозвољене у оквиру апстрактне класе.
- Делимично: Ова класа вам омогућава да одвојите своја својства, методе и догађаје у неколико изворних датотека, које се затим комбинују у једну класу у време израде.
- Запечаћена: Запечаћена класа се не може наследити од друге класе и има ограничене карактеристике. Модификатори приступа се не могу додати запечаћеној класи.
11. Шта су тачно назубљени низови?
Низ са елементима низа се назива назубљеним низом. Елементи назубљених низова могу бити различитих облика и величина.
12. Која је разлика између параметара оут и реф?
Када се даје аргумент као реф, параметар се мора иницијализовати пре него што буде прослеђен методу. С друге стране, излазни параметар не мора да се иницијализује пре него што се достави методу.
13. Шта је деструктор у Ц#?
Деструктор је врста методе у Ц# која је део класе. Примарна функција деструктора је да избрише инстанце класе када више нису потребне да би се ослободила меморија. Деструктори су понекад познати као финализатори.
14. Шта је индексер у Ц#?
Индексери се користе у Ц# за проналажење инстанци класе или структуре. Индексираним вредностима се стога може приступити слично низу, али без потребе да се експлицитно декларише тип или члан инстанце.
15. Која је разлика између управљаног и неуправљаног кода?
Управљани код вам омогућава да покренете код у .НЕТ оквиру у управљаном ЦЛР окружењу за извршавање.
Контролисани код се извршава у управљаном рунтиме окружењу, а не у оперативном систему. Пружа разне услуге као што су сакупљач смећа, руковање изузетцима и тако даље.
Неуправљани код је код који се не извршава на ЦЛР-у и ради изван .НЕТ оквира. Они не пружају језичке услуге високог нивоа и стога раде без њих. Ц++ је један такав пример.
16. Опишите серијализацију.
Од ставке се мора креирати ток бајтова да би се пренео преко мреже. Серијализација је чин трансформације ставке у ток бајтова. Интерфејс за серијализацију мора бити имплементиран да би ставка могла да се серијализује. Супротно од конструисања објекта из тока бајтова назива се десеријализација.
17. У Ц#, како се поља и својства разликују једно од другог?
Поље је члан класе или објекат било које врсте који служи као локација за складиштење података, док је својство члан класе који нуди метод за читање, писање и израчунавање вредности приватног поља.
18. Како можете детаљно описати коришћење исказа у Ц#?
Наредба усинг се користи за ограничавање употребе једног или више ресурса унутар апликације. Ресурси се стално троше и ослобађају.
Примарни задатак ове изјаве је управљање нежељеним ресурсима и њихово аутоматско ослобађање. Када се формира објекат који користи ресурс, уверите се да је функција диспосе објекта позвана да ослободи ресурсе потребне том објекту; ево где коришћење исказа добро долази.
19. Како бисте имплементирали бројне интерфејсе са истим именом методе у истој класи?
Да бисте имплементирали неколико интерфејса са истим именом методе, избегавајте да их имплементирате у телу функције. Уместо тога, навели бисте име интерфејса директно у телу методе. Компајлер ће препознати на које методе интерфејса се позива, решавајући проблем.
20. Која је разлика између задатка и нити у Ц#-у?
Нит је права нит оперативног система са сопственим ресурсима стека и кернела. Нит пружа највећу контролу. Нит вам омогућава да Прекинете (), Суспенд () или Наставите (). Може се посматрати статус нити или се могу подесити њени атрибути, као што су величина стека, стање стана и култура. ЦЛР чува скуп нити умотаних у ТхреадПоол.
Паралелна библиотека задатака има класу под називом Таск. За разлику од ТхреадПоол-а, Задатак нема сопствену нит оперативног система. Задатке извршава ТаскСцхедулер, иако подразумевани планер извршава ТхреадПоол. Могуће је бити обавештен када се задатак заврши и добити резултат.
21. Шта је функција финализе у Ц#?
Класа објекта која се користи за акције чишћења дефинише функцију финализе (). Када се референца на објекат не користи током дужег временског периода, сакупљач смећа ће често позвати ову функцију.
Сакупљач смећа аутоматски ослобађа контролисане ресурсе, али ако желите да ослободите непотребне ресурсе као што су ручке датотека, везе са подацима и тако даље, морате експлицитно имплементирати функцију финализације.
22. Направите разлику између блокова финализације и финализације.
Завршени блок се позива након што су блокови покушаја и хватања завршени јер је потребан за руковање изузетцима. Блок кода се извршава без обзира да ли је изузетак ухваћен. Код блока је генерално чистији.
Метод финализације се позива непосредно пре сакупљања смећа. Главне одговорности финализоване методе су да очисти неуправљани код, који се аутоматски покреће сваки пут када се инстанца не позове.
23. Детаљно опишите Ц# метод диспосе.
Функција диспосеоф() ослобађа неискоришћене ресурсе објекта. Неискоришћени ресурси, као што су датотеке, везе за пренос података и тако даље. Ова функција је наведена у интерфејсу ИДиспосабле, који је имплементиран од стране класе декларисањем тела интерфејса ИДиспосабле.
Функција диспосе се не позива аутоматски; програмер мора да га примени ручно за ефикасно коришћење ресурса.
24. Шта је преоптерећење Ц# методе? Разјаснити.
Преоптерећење метода је типичан приступ у Ц# који се користи за конструисање бројних метода са истим именом и одређеним потписима. Овај поступак се понавља са истом класом.
Када је процедура преоптерећења методе завршена, компајлер започиње операције позивања одређених акција на основу преоптерећења методе.
25. Која је разлика између само за читање и константи?
Константне променљиве се декларишу и иницијализују током компилације. Након тога, ова вредност се не може мењати. С друге стране, само за читање се користи када је вредност додељена у време извршавања.
26. Шта су корисничка контрола и прилагођена контрола?
Преведени код се користи за развој прилагођених контрола. Они могу бити укључени у кутију са алатима и једноставни су за употребу. Превлачењем и отпуштањем ових контрола, програмери их могу укључити у своје веб обрасце.
Корисничке контроле и датотеке укључене у АСП су прилично сличне. Такође су једноставне за прављење. Корисничке контроле, с друге стране, не могу да се додају у оквир са алаткама. Такође се не могу извући и испустити из њега.
27. Шта је мултицаст делегат у Ц#?
Мултицаст делегат одржава референце или адресе за неколико функција истовремено. Када позовемо мултицаст делегата, он ће такође позвати све друге функције на које се односи. Да бисте позвали неколико метода, користите потпис целе методе, баш као и делегат. Као пример:
28. Шта је заправо обједињавање објеката у Ц#?
Обједињавање објеката је техника дизајна у софтверу која рециклира ствари уместо да их поново гради. То постиже тако што чува одабране ставке у групи и ставља их на располагање за употребу када их апликација затражи. Ова процедура побољшава перформансе смањујући генерисање непотребних објеката.
29. Шта су заправо генерици у Ц#.НЕТ-у?
Генерици се користе за креирање класа кода за вишекратну употребу како би се смањила редундантност кода, побољшала сигурност типова и побољшала брзина. Можемо да конструишемо класе колекције са генерицима.
У систему, генерички простор имена треба да се користи уместо класа као што је АрраиЛист. Именски простор за колекције. Генерици подстичу употребу параметаризованих типова.
30. Да ли је могуће заменити приватни виртуелни метод?
Приватна виртуелна метода се не може заменити пошто је приватна за класу и не може јој се приступити изван ње.
31. Да ли правите разлику између преоптерећења методе и замене метода у Ц#?
Надјачавање методе је процес измене основне дефиниције изведене класе. Методе изведене класе на крају се понашају другачије као резултат ове стратегије.
Преоптерећење метода, с друге стране, може се описати као чин генерисања многих метода са истим именом али различитим потписима под истом класом.
32. Која је разлика између Стринг и СтрингБуилдер-а у Ц#?
Стринг објекат је непроменљив, што значи да се не може мењати након што је креиран. Сваки покушај да се промени стринг објекат ће резултирати стварањем новог стринг објекта.
С друге стране, објекат за прављење низова је савитљив и може се мењати како програмер сматра одговарајућим.
33. Шта су заправо делегати?
У Ц++, делегати су у основи исти као показивачи функција. Једина разлика између њих је та што су делегати безбедни за тип, док показивачи функција нису. Делегати су неопходни јер омогућавају конструкцију генеричких типова безбедних функција.
34. Када би требало да користите вишенитно у Ц#, а када да га избегавате?
Мултитхреадинг, често познат као тхреадинг, је ефикасан приступ за повећање брзине програма у којем се бројне активности извршавају истовремено. Омогућава да се различите нити извршавају независно, уместо да чекају да се претходни корак заврши. Ово има могућност да повећа темпо програма.
Међутим, када је неколико процеса програма међусобно повезано, вишенитност се не препоручује. На пример, ако је корак Б зависио од тога да се корак А прво заврши, вишенитност би изазвала проблеме са перформансама и софтверске грешке. Нитовање постаје све осетљивије како се програм развија у сложености.
35. Шта је мултицаст делегат у Ц#?
Мултицаст делегат у Ц#, за разлику од основног делегата, односи се на бројне циљне методе. Када се користи мултицаст делегат, позивају се све функције на које је делегат указао. Имплементирају се уз помоћ системске класе МултицастДелегате.
36. Која је разлика између касног и раног везивања у Ц#?
- Рано везивање се дешава у време компајлирања, док се касно везивање дешава током времена извршавања.
- Касно везивање је често спорије од раног јер се дешава у току рада.
- За разлику од касног повезивања, које користи објекат за решавање позива метода, рано везивање решава позиве метода користећи информације о класи.
37. Да ли разликујете Дирецтцаст и Цтипе?
Врста објекта која захтева да се тип времена извршавања подудара са наведеним типом у ДирецтЦаст-у се конвертује помоћу ДирецтЦаст-а.
Када се специфицира конверзија између израза и типа, користи се Цтипе.
38. Како се ХасхСет користи у Ц#?
У Ц#, ХасхСет је неуређена колекција различитих вредности. Уопштено говорећи, користи се да спречи уметање дупликата у колекцију и ради боље од листе у овом задатку.
За имплементацију се користи класа ХасхСет, која потиче од система.
39. Објасните групирање нити у Ц#.
У Ц#, скуп нити је колекција нити. Ове нити се користе за обављање задатака без ометања функционалности примарне нити. Нит у групи нити се враћа у скуп нити када заврши са радом.
Класа Систем садржи класе које рукују нити у скупу нити и њеним радњама. Тхреадинг. ТхреадПоол је именски простор.
40. Која је разлика између кључних речи Цонст и РеадОнли у Ц#?
- РеадОнли се не може декларисати у оквиру методе, док Цонст може.
- Цонст је константа времена компајлирања, док је РеадОнли константа времена извршавања.
- Вредности само за читање могу да се мењају, али Цонст вредности не могу.
41. Које детаље у вези са Ц# КССД датотеком можете да пружите?
КССД је скраћеница од КСМЛ Сцхема Дефинитион. Ако ниједна КССД датотека није повезана са КСМЛ датотеком, она може имати било које атрибуте, елементе и ознаке. КССД датотека обезбеђује оквир за КСМЛ датотеку, одређујући које компоненте и атрибути треба да буду присутни у КСМЛ датотеци, као и њихов редослед.
42. Шта за вас значе својства Гет анд Сет Аццессор?
У Ц#, Гет и Сет се називају приступници пошто су направљени помоћу својстава. Својство дозвољава читање и писање вредности приватног поља. Таквим приватним пољима се приступа преко приступника.
Док се својство Гет користи за враћање вредности својства, својство Сет се користи за постављање вредности.
43. Шта је тачно убризгавање зависности у Ц#?
Ињекција зависности (ДИ) је техника дизајна у Ц# која се користи за креирање лабаво повезаног програмирања. Ова процедура преноси креирање и везивање зависних објеката ван класе на коју се ослањају. Главни циљ је да се будуће модификације кода учине лакшим за управљање.
Zakljucak
Ц# је примарни програмски језик који се користи у свим програмским језицима вишег нивоа. Ц# програмери су у великој потражњи и могу пронаћи атрактивне изгледе за каријеру у индустријама као што су фронт-енд развој, бацк-енд програмирање и развој апликација. А пошто га Мицрософт подржава, популарност Ц# ће само расти.
Горе поменута су најважнија питања Ц# интервјуа за искусне професионалце и почетнике. Видите Хашдорков серијал интервјуа за помоћ у припреми интервјуа.
Ostavite komentar