Indholdsfortegnelse[Skjule][At vise]
- 1. Hvad er C# helt præcist?
- 2. Hvad adskiller C# fra C?
- 3. Hvad er en klasse egentlig?
- 4. Hvad er en genstand egentlig?
- 5. Hvad er forskellen mellem begreberne statisk, offentlig og ugyldig?
- 6. Definer konstruktører.
- 7. Hvad er C# i skraldesamling?
- 8. Hvad betyder struktur helt præcist i C#?
- 9. Hvordan bliver C# kode kompileret?
- 10. Beskriv klart de forskellige C# klasser.
- 11. Hvad er Jagged Arrays helt præcist?
- 12. Hvad er forskellen mellem ud- og ref-parametrene?
- 13. Hvad er en destruktor i C#?
- 14. Hvad er en indekser i C#?
- 15. Hvad er forskellen mellem administreret og ikke-administreret kode?
- 16. Beskriv serialisering.
- 17. Hvordan varierer felter og egenskaber fra hinanden i C#?
- 18. Hvordan kan du beskrive at bruge udsagn i C# i detaljer?
- 19. Hvordan vil du implementere adskillige grænseflader med det samme metodenavn i den samme klasse?
- 20. Hvad er forskellen mellem Task og Thread i C#?
- 21. Hvad er færdiggørelsesfunktionen i C#?
- 22. Foretag en skelnen mellem færdiggør blokke og færdiggør.
- 23. Beskriv C# dispose of metoden i detaljer.
- 24. Hvad er C#-metodeoverbelastning? Belyse.
- 25. Hvad er forskellen mellem skrivebeskyttet og konstanter?
- 26. Hvad er brugerkontrol og brugerdefineret kontrol?
- 27. Hvad er en multicast-delegeret i C#?
- 28. Hvad er objektpooling helt præcist i C#?
- 29. Hvad er generika præcist i C#.NET?
- 30. Er det muligt at tilsidesætte en privat virtuel metode?
- 31. Forskel mellem metodeoverbelastning og metodeoverstyring i C#?
- 32. Hvad er forskellen mellem String og StringBuilder i C#?
- 33. Hvad er delegerede præcist?
- 34. Hvornår skal du bruge multithreading i C#, og hvornår skal du undgå det?
- 35. Hvad er en multicast-delegeret i C#?
- 36. Hvad er forskellen mellem sen binding og tidlig binding i C#?
- 37. Skelner mellem Directcast og Ctype?
- 38. Hvordan bruges HashSet i C#?
- 39. Forklar venligst Thread Pooling i C#.
- 40. Hvad er forskellen mellem Const og ReadOnly nøgleord i C#?
- 41. Hvilke detaljer vedrørende C# XSD-filen kan du give?
- 42. Hvad betyder Get and Set Accessor-egenskaber for dig?
- 43. Hvad er afhængighedsinjektion helt præcist i C#?
- Konklusion
C# (tidligere kendt som C sharp) er et objektorienteret programmeringssprog, der ofte bruges af udviklere til at udføre flere aktiviteter og opnå flere mål.
Objektorienterede programmeringssprog, såsom C++, Python og Java, kommer i en række forskellige varianter. Disse programmeringssprog er designet til at fungere inden for en bestemt ramme. På samme måde er C# skabt og udviklet til et specifikt framework, nemlig NET.
.NET frameworket blev skabt af microsoft. Det giver en enorm platform til udvikling af applikationer, erklæringer, applikationsinstruktioner og så videre. C# kan bruges til webudvikling, spil, mobile apps, Windows-applikationer og andre lignende projekter.
Med sådanne fordele er brugen af C# blevet udvidet, og behovet for specialister, der kan udnytte det præcist, er blevet fordoblet. Fordi C# er så populært programmeringssprog, et væld af store og små virksomheder baserer deres produkter på det.
Så øv dig på grundlæggende og avancerede C#-spørgsmål for at klare interviewene.
1. Hvad er C# helt præcist?
Microsoft C# er en moderne, generel objektorienteret programmering Sprog. C# er beregnet til Common Language Infrastructure (CLI), som omfatter eksekverbar kode og et runtime-miljø, der muliggør brugen af adskillige højniveausprog på forskellige computersystemer og arkitekturer.
2. Hvad adskiller C# fra C?
C er normalt kendt som det proceduremæssige sprog, hvorimod C# er mere objektorienteret. Den vigtigste forskel er, at C# tillader automatiseret affaldsindsamling via Common Language Runtime (CLR), hvorimod C ikke gør det. C# kræver, at.NET frameworket kører, hvorimod C er et platformsuafhængigt sprog.
3. Hvad er en klasse egentlig?
En klasse fungerer som en skabelon til at bygge objekter. Sammen med teknikker har det egenskaber. Fra en enkelt klasse kan vi producere flere forekomster af et objekt.
4. Hvad er en genstand egentlig?
En klasseinstans kendt som et objekt er, hvordan vi får adgang til en klasses funktionaliteter. For at konstruere et objekt kan vi bruge nøgleordet "nyt". Funktionerne, datamedlemmerne og adfærden for en klasse, der producerer et objekt i hukommelsen, gemmes.
5. Hvad er forskellen mellem begreberne statisk, offentlig og ugyldig?
Hvor som helst i programmet kan få adgang til offentligt definerede variabler. Statiske variabler kan tilgås globalt uden krav om at bygge en klasseinstans. I C# bruges en typemodifikator kaldet Void til at angive returtypen for en metode.
6. Definer konstruktører.
En konstruktør er en klassespecifik medlemsfunktion. Når et objekt dannes, kaldes konstruktøren automatisk. Klassen konstruerer alle værdierne af datamedlemmer, efterhånden som den initialiseres.
7. Hvad er C# i skraldesamling?
Processen med at rydde op i hukommelsen, der er blevet optaget af uønskede genstande, er kendt som affaldsopsamling. En vis mængde hukommelse tildeles automatisk til et klasseobjekt, når det oprettes i heap-hukommelsen. Nu hvor du er færdig med at arbejde på emnet, er den hukommelsesplads, den tidligere optog, spildt. Hukommelsen skal frigøres.
8. Hvad betyder struktur helt præcist i C#?
I C# er en struktur en datatype, der består af adskillige datatyper, såsom metoder, felter, konstruktører, konstanter, egenskaber, indeksere, operatorer og endda andre strukturer. En struktur hjælper med at konsolidere mange datatyper til en enkelt enhed. På denne måde er de analoge med kurser. Strukturer er værdityper, hvorimod klasser er referencetyper.
9. Hvordan bliver C# kode kompileret?
Når et projekt er oprettet, kompileres C#-kildekoden til Intermediate Language (IL). IL er en samling instruktioner, der genererer maskinkode til udførelse på en maskinprocessor. Koden sendes fra præprocessoren til compileren, derefter til assembleren og til sidst til linkeren i fire trin.
10. Beskriv klart de forskellige C# klasser.
- Statisk: Det er den slags klasse, der ikke kan instansieres, derfor kan vi ikke bruge det nye nøgleord til at lave et objekt af det, men vi kan kalde medlemmerne af klassen direkte ved at bruge deres klassenavn.
- Abstrakt: For at definere abstrakte klasser skal du bruge det abstrakte nøgleord. Der kan ikke oprettes objekter til abstrakte klasser. Det skal nedarves i en underklasse, hvis du vil bruge det. Simple definitioner af abstrakte og ikke-abstrakte metoder er tilladt i en abstrakt klasse.
- Delvis: Denne klasse giver dig mulighed for at adskille dine egenskaber, metoder og hændelser i flere kildefiler, som efterfølgende kombineres til en enkelt klasse på byggetidspunktet.
- Forseglet: En forseglet klasse kan ikke nedarves fra en anden klasse og har begrænsede egenskaber. Adgangsmodifikatorer kan ikke føjes til den forseglede klasse.
11. Hvad er Jagged Arrays helt præcist?
Et array med array-elementer omtales som et takket array. Elementer af Jagged Arrays kan have mange former og størrelser.
12. Hvad er forskellen mellem ud- og ref-parametrene?
Når du angiver et argument som ref, skal parameteren initialiseres, før den overføres til metoden. En ud-parameter skal derimod ikke initialiseres, før den leveres til en metode.
13. Hvad er en destruktor i C#?
En destructor er en type metode i C#, der er en del af en klasse. En destruktors primære funktion er at slette forekomster af en klasse, når de ikke længere er nødvendige for at frigøre hukommelse. Destruktorer er nogle gange kendt som finalizers.
14. Hvad er en indekser i C#?
Indekseringsprogrammer bruges i C# til at finde forekomster af en klasse eller struktur. De indekserede værdier kan derfor tilgås på samme måde som et array, men uden at skulle udtrykkeligt erklære en type eller et instansmedlem.
15. Hvad er forskellen mellem administreret og ikke-administreret kode?
Administreret kode giver dig mulighed for at køre kode i.NET frameworket på et administreret CLR runtime miljø.
Kontrolleret kode udføres på det administrerede runtime-miljø i stedet for operativsystemet. Tilbyder en række tjenester såsom en affaldsopsamler, undtagelseshåndtering og så videre.
Ikke-administreret kode er kode, der ikke udføres på CLR og fungerer uden for.NET frameworket. De leverer ikke sprogtjenester på højt niveau og fungerer derfor uden dem. C++ er et sådant eksempel.
16. Beskriv serialisering.
En strøm af bytes skal oprettes fra elementet for at overføre det over et netværk. Serialisering er handlingen med at omdanne et element til en strøm af bytes. Serialiseringsgrænsefladen skal være implementeret for at et element kan serialiseres. Det modsatte af at konstruere et objekt ud fra en strøm af bytes kaldes de-serialisering.
17. Hvordan varierer felter og egenskaber fra hinanden i C#?
Et felt er et klassemedlem eller et objekt af enhver art, der tjener som en placering til lagring af data, hvorimod en egenskab er et klassemedlem, der tilbyder en metode til at læse, skrive og beregne værdien af et privat felt.
18. Hvordan kan du beskrive at bruge udsagn i C# i detaljer?
Brugererklæringen bruges til at begrænse brugen af en eller flere ressourcer i applikationen. Ressourcerne forbruges og frigives på en konstant basis.
Denne erklærings primære opgave er at administrere uønskede ressourcer og automatisk frigive dem. Når objektet, der bruger ressourcen, er dannet, skal du sørge for, at objektets bortskaffelsesfunktion kaldes for at frigive de ressourcer, der kræves af det objekt; her er det nyttigt at bruge udsagn.
19. Hvordan vil du implementere adskillige grænseflader med det samme metodenavn i den samme klasse?
For at implementere flere grænseflader med samme metodenavn skal du undgå at implementere dem i funktionens krop. I stedet vil du angive navnet på grænsefladen direkte i metodeteksten. Compileren vil genkende, hvilke grænseflademetoder der refereres til, og løser problemet.
20. Hvad er forskellen mellem Task og Thread i C#?
En tråd er en ægte operativsystemtråd med sin egen stak og kerneressourcer. Tråd giver mest kontrol. Tråden giver dig mulighed for at afbryde (), suspendere () eller genoptage (). En tråds status kan observeres, eller dens attributter, såsom stakstørrelse, lejlighedstilstand og kultur, kan indstilles. CLR holder en pulje af tråde pakket ind af ThreadPool.
Task Parallel Library har en klasse kaldet Task. I modsætning til ThreadPool har opgaven ikke sin egen operativsystemtråd. Opgaver udføres af TaskScheduler, selvom standardplanlæggeren udføres af ThreadPool. Det er muligt at få besked, når en opgave er fuldført, og få et resultat.
21. Hvad er færdiggørelsesfunktionen i C#?
Objektklassen, der bruges til rensehandlinger, definerer funktionen finalize (). Når en reference til en genstand ikke bliver brugt over en længere periode, vil skraldemand ofte kalde denne funktion.
Skraldesamleren frigiver automatisk kontrollerede ressourcer, men hvis du ønsker at frigøre unødvendige ressourcer som filhåndtag, dataforbindelser og så videre, skal du eksplicit implementere færdiggørelsesfunktionen.
22. Foretag en skelnen mellem færdiggør blokke og færdiggør.
Den færdige blok kaldes, efter at prøve-og-fang-blokkene er afsluttet, da den er nødvendig for undtagelseshåndtering. Kodeblokken udføres, uanset om undtagelsen blev fanget. Blokkens kode er generelt renere.
Finaliseringsmetoden påberåbes lige før affaldsindsamling. Den færdiggjorte metodes hovedansvar er at rydde op i uadministreret kode, som automatisk udløses hver gang en instans ikke genkaldes.
23. Beskriv C# dispose of metoden i detaljer.
Funktionen disposeof() frigiver et objekts ubrugte ressourcer. Ubrugte ressourcer, såsom filer, dataforbindelser og så videre. Denne funktion er specificeret i grænsefladen IDisposable, som implementeres af klassen ved at erklære grænsefladen IDisposable body.
Bortskaffelsesfunktionen kaldes ikke automatisk; programmøren skal implementere det manuelt for effektiv ressourceudnyttelse.
24. Hvad er C#-metodeoverbelastning? Belyse.
Metodeoverbelastning er en typisk tilgang i C#, der bruges til at konstruere en række metoder med samme navn og specificerede signaturer. Denne procedure gentages med samme klasse.
Når metodeoverbelastningsproceduren er fuldført, påbegynder compileren operationer for at kalde specificerede handlinger baseret på metodeoverbelastningen.
25. Hvad er forskellen mellem skrivebeskyttet og konstanter?
Konstante variable erklæres og initialiseres under kompilering. Derefter kan denne værdi ikke ændres. På den anden side bruges skrivebeskyttet, når en værdi er blevet tildelt ved kørselstid.
26. Hvad er brugerkontrol og brugerdefineret kontrol?
Kompileret kode bruges til at udvikle brugerdefinerede kontroller. Disse kan være inkluderet i værktøjskassen og er nemme at bruge. Ved at trække og slippe disse kontroller kan udviklere inkludere dem i deres webformularer.
Brugerkontroller og ASP-inkluderede filer er ret ens. De er også nemme at lave. Brugerkontroller kan derimod ikke føjes til værktøjskassen. De kan heller ikke trækkes og tabes fra den.
27. Hvad er en multicast-delegeret i C#?
En multicast-delegeret vedligeholder referencer eller adresser til flere funktioner på samme tid. Når vi kalder multicast-delegaten, vil den også kalde alle de andre funktioner, som den henviser til. For at kalde flere metoder skal du bruge hele metodesignaturen, ligesom den delegerede. Som et eksempel:
28. Hvad er objektpooling helt præcist i C#?
Objektpooling er en designteknik i software, der genbruger ting i stedet for at genopbygge dem. Den opnår dette ved at gemme udvalgte elementer i en pulje og gøre dem tilgængelige til brug, når en applikation anmoder om dem. Denne procedure forbedrer ydeevnen ved at reducere unødvendig objektgenerering.
29. Hvad er generika præcist i C#.NET?
Generiske stoffer bruges til at skabe genanvendelige kodeklasser for at reducere koderedundans, forbedre typesikkerheden og forbedre hastigheden. Vi kan konstruere samlingsklasser med generika.
I systemet bør et generisk navneområde bruges i stedet for klasser som ArrayList. Navneområde til samlinger. Brugen af parametriserede typer opmuntres af generiske lægemidler.
30. Er det muligt at tilsidesætte en privat virtuel metode?
En privat virtuel metode kan ikke tilsidesættes, da den er privat for klassen og ikke kan tilgås uden for den.
31. Forskel mellem metodeoverbelastning og metodeoverstyring i C#?
Metodetilsidesættelse er processen med at ændre en afledt klasses grundlæggende definition. Metoderne i den afledte klasse opfører sig til sidst anderledes som et resultat af denne strategi.
Metodeoverbelastning kan på den anden side beskrives som handlingen med at generere mange metoder med samme navn, men forskellige signaturer under samme klasse.
32. Hvad er forskellen mellem String og StringBuilder i C#?
Et strengobjekt er uforanderligt, hvilket betyder, at det ikke kan ændres, når det først er oprettet. Ethvert forsøg på at ændre strengobjektet vil resultere i oprettelsen af et nyt strengobjekt.
Et stringbuilderobjekt er derimod formbart og kan ændres, som udvikleren finder passende.
33. Hvad er delegerede præcist?
I C++ er delegerede grundlæggende det samme som funktionsmarkører. Den eneste forskel mellem de to er, at delegerede er typesikre, hvorimod funktionsvisere ikke er det. Delegerede er nødvendige, fordi de muliggør konstruktion af generiske typesikre funktioner.
34. Hvornår skal du bruge multithreading i C#, og hvornår skal du undgå det?
Multithreading, ofte kendt som threading, er en effektiv tilgang til at øge hastigheden af et program, hvor adskillige aktiviteter udføres samtidigt. Det gør det muligt for forskellige tråde at køre uafhængigt, i stedet for at vente på, at det foregående trin er afsluttet. Dette har evnen til at øge tempoet i et program.
Men når flere af programmets processer er indbyrdes forbundne, anbefales multithreading ikke. For eksempel, hvis trin B var afhængig af, at trin A blev gennemført først, ville multithreading forårsage ydeevneproblemer og softwarefejl. Trådning bliver mere og mere følsom, efterhånden som et program udvikler sig i kompleksitet.
35. Hvad er en multicast-delegeret i C#?
En multicast-delegat i C#, i modsætning til en grundlæggende delegat, refererer til adskillige målmetoder. Når en multicast-delegeret bruges, kaldes alle de funktioner, som delegeret peger på. De implementeres ved hjælp af systemets MulticastDelegate-klasse.
36. Hvad er forskellen mellem sen binding og tidlig binding i C#?
- Tidlig binding finder sted på kompileringstidspunktet, hvorimod sen binding finder sted under runtime.
- Sen binding er ofte langsommere end tidlig binding, da det sker under kørsel.
- I modsætning til sen binding, som bruger objektet til at løse metodekald, løser tidlig binding metodekald ved hjælp af klasseinformation.
37. Skelner mellem Directcast og Ctype?
Den type objekt, der kræver, at runtime-typen matcher den angivne type i DirectCast, konverteres ved hjælp af DirectCast.
Når en konvertering er angivet mellem et udtryk og en type, bruges Ctype.
38. Hvordan bruges HashSet i C#?
I C# er et HashSet en uordnet samling af forskellige værdier. Generelt bruges det til at forhindre duplikerede elementer i at blive indsat i en samling, og det fungerer bedre end en liste ved denne opgave.
HashSet-klassen, som stammer fra systemet, bruges til at implementere det.
39. Forklar venligst Thread Pooling i C#.
I C# er en trådpulje en samling af tråde. Disse tråde bruges til at udføre opgaver uden at forstyrre den primære tråds funktionalitet. En tråd i en trådpulje vender tilbage til trådpuljen når den er færdig med at køre.
System-klassen indeholder klasser, der håndterer tråden i trådpuljen og dens handlinger. Trådning. ThreadPool er et navneområde.
40. Hvad er forskellen mellem Const og ReadOnly nøgleord i C#?
- ReadOnly kan ikke erklæres i metoden, mens Const kan.
- Const er en kompileringstidskonstant, mens ReadOnly er en køretidskonstant.
- ReadOnly-værdier kan ændres, men Const-værdier kan ikke.
41. Hvilke detaljer vedrørende C# XSD-filen kan du give?
XSD står for XML Schema Definition. Hvis ingen XSD-fil er forbundet med XML-filen, kan den have alle attributter, elementer og tags. XSD-filen giver en ramme for XML-filen, der bestemmer, hvilke komponenter og attributter der skal være til stede i XML-filen samt deres rækkefølge.
42. Hvad betyder Get and Set Accessor-egenskaber for dig?
I C# har Get og Set betegnet accessors, da de er lavet ved hjælp af egenskaber. En ejendom tillader læsning og skrivning til et privat felts værdi. Sådanne private felter tilgås via accessorer.
Mens egenskaben Get bruges til at returnere værdien af en egenskab, bruges egenskaben Set til at angive værdien.
43. Hvad er afhængighedsinjektion helt præcist i C#?
Dependency injection (DI) er en designteknik i C#, der bruges til at skabe løst forbundet programmering. Denne procedure overfører oprettelsen og bindingen af afhængige objekter uden for den klasse, som de er afhængige af. Hovedmålet er at gøre fremtidige kodeændringer mere overskuelige.
Konklusion
C# er det primære programmeringssprog, der bruges i alle programmeringssprog på højere niveau. C#-udviklere er meget efterspurgte og kan finde attraktive karrieremuligheder i brancher som front-end-udvikling, back-end-programmering og app-udvikling. Og fordi Microsoft understøtter det, vil C#-populariteten kun vokse.
Ovennævnte er de mest afgørende C#-interviewspørgsmål for erfarne fagfolk og begyndere. Se Hashdorks interviewserie for hjælp til samtaleforberedelse.
Giv en kommentar