Top 50 C#-interviewvragen en -antwoorden voor 2021

C# is een programmeertaal voor algemene doeleinden die verschillende disciplines omvat, zoals objectgeoriënteerd programmeren, statisch typen, componentgericht programmeren, sterk typen, enz. C# wordt veel gebruikt in het ASP.NET-framework voor het maken van websites, webapplicaties en games. Er zijn enorme mogelijkheden voor C#-programmering over de hele wereld. Als u overweegt een carrière in C#-programmering op te bouwen, moet u een interview afbreken waarin u verschillende basisvragen en antwoorden voor C#-interviews worden gesteld, zoals hieronder vermeld.

Dit is een samengestelde lijst met C#-interviewvragen en -antwoorden, die waarschijnlijk tijdens het interview zullen worden gesteld. Kandidaten zullen waarschijnlijk basis C#-interviewvragen krijgen om C#.NET-interviewvragen op niveau te brengen, afhankelijk van hun ervaring en verschillende andere factoren. Deze lijst bevat alle C#-vragen voor eerstejaars, evenals C#-interviewvragen en -antwoorden voor kandidaten met een ervaren niveau.

C# Interview Vragen en Antwoorden PDF-bestand: Download hier!

Veelgestelde vragen en antwoorden voor C#-interviews voor eerstejaars en ervaren

Hier zijn enkele veelgestelde sollicitatievragen voor zowel eerstejaars als ervaren kandidaten voor C#-ontwikkelaars om de juiste baan te vinden.

We hebben meer dan 50 basisvaardigheden behandeld om veelgestelde vragen en antwoorden over C#-interviews te verbeteren

1. Wat is C#?

C# is een objectgeoriënteerde, typeveilige en beheerde taal die is gecompileerd door .Net-framework om Microsoft Intermediate Language te genereren.

2. Leg typen opmerkingen in C# uit met voorbeelden

Enkele lijn

Voorbeeld: |_+_|

ii. Meerdere regels (/ * * /)

Voorbeeld: |_+_|

iii. XML-opmerkingen (///).

Bijv.: |_+_|

3. Kunnen meerdere catch-blokken worden uitgevoerd?

Nee, meerdere catch-blokken van hetzelfde type kunnen niet worden uitgevoerd. Zodra de juiste catch-code is uitgevoerd, wordt de besturing overgedragen naar het definitieve blok en wordt de code die volgt op het definitieve blok uitgevoerd.

4. Wat is het verschil tussen openbaar, statisch en nietig?

Openbaar gedeclareerde variabelen of methoden zijn overal in de toepassing toegankelijk. Statisch gedeclareerde variabelen of methoden zijn wereldwijd toegankelijk zonder een instantie van de klasse te maken. Statische leden zijn standaard niet wereldwijd toegankelijk, dit hangt af van het type gewijzigde toegang dat wordt gebruikt. De compiler slaat het adres van de methode op als het ingangspunt en gebruikt deze informatie om de uitvoering te starten voordat er objecten worden gemaakt. En Void is een typemodifier die stelt dat de methode of variabele geen waarde retourneert.

5. Wat is een object?

Een object is een instantie van een klasse waarmee we toegang krijgen tot de methoden van die klasse. Het trefwoord 'Nieuw' wordt gebruikt om een ​​object te maken. Een klasse die een object in het geheugen maakt, bevat de informatie over de methoden, variabelen en het gedrag van die klasse.

6. Definieer constructeurs

Een constructor is een lidfunctie in een klasse die dezelfde naam heeft als zijn klasse. De constructor wordt automatisch aangeroepen wanneer een objectklasse wordt gemaakt. Het construeert de waarden van gegevensleden terwijl de klasse wordt geïnitialiseerd.

7. Wat is Jagged Arrays?

De array die elementen van het type array heeft, wordt jagged array genoemd. De elementen kunnen verschillende afmetingen en afmetingen hebben. We kunnen gekartelde array ook een array van arrays noemen.

8. Wat is het verschil tussen ref & out-parameters?

Een argument dat als ref wordt doorgegeven, moet worden geïnitialiseerd voordat het wordt doorgegeven aan de methode, terwijl de parameter out niet hoeft te worden geïnitialiseerd voordat het wordt doorgegeven aan een methode.

9. Wat is het nut van de instructie 'using' in C#?

Het 'gebruikende' blok wordt gebruikt om een ​​bron te verkrijgen en te verwerken en vervolgens automatisch te verwijderen wanneer de uitvoering van het blok is voltooid.

10. Wat is serialisatie?

Wanneer we een object door een netwerk willen transporteren, dan moeten we het object omzetten in een stroom van bytes. Het proces van het omzetten van een object in een stroom van bytes wordt serialisatie genoemd. Om een ​​object serialiseerbaar te maken, moet het ISerialize Interface implementeren. De-serialisatie is het omgekeerde proces van het maken van een object uit een stroom van bytes.

11. Kunnen we 'dit' commando gebruiken binnen een statische methode?

We kunnen 'This' niet gebruiken in een statische methode omdat we alleen statische variabelen/methoden kunnen gebruiken in een statische methode.

12. Wat is het verschil tussen constanten en alleen-lezen?

Constante variabelen worden tijdens het compileren gedeclareerd en geïnitialiseerd. De waarde kan daarna niet meer worden gewijzigd. Alleen-lezen wordt alleen gebruikt als we de waarde tijdens runtime willen toewijzen.

13. Wat is een interfaceklasse? Geef er een voorbeeld van

Een interface is een abstracte klasse die alleen openbare abstracte methoden heeft, en de methoden hebben alleen de verklaring en niet de definitie. Deze abstracte methoden moeten worden geïmplementeerd in de overgeërfde klassen. |__+_|

14. Wat zijn waardetypes en referentietypes?

Een waardetype bevat een gegevenswaarde binnen zijn eigen geheugenruimte. Voorbeeld |_+_|

Referentietype slaat het adres op van het object waar de waarde wordt opgeslagen. Het is een verwijzing naar een andere geheugenlocatie. |__+_|

15. Wat zijn Custom Control en User Control?

Aangepaste besturingselementen zijn besturingselementen die worden gegenereerd als gecompileerde code (Dll's), die gemakkelijker te gebruiken zijn en aan de toolbox kunnen worden toegevoegd. Ontwikkelaars kunnen besturingselementen naar hun webformulieren slepen en neerzetten. Attributen kunnen, in ontwerptijd. We kunnen eenvoudig aangepaste besturingselementen toevoegen aan meerdere toepassingen (indien gedeelde dll's). Dus als ze privé zijn, kunnen we naar de dll-map van de webtoepassing kopiëren en vervolgens een referentie toevoegen en ze gebruiken.

User Controls lijken erg op ASP include-bestanden en zijn eenvoudig te maken. Gebruikersbedieningen kunnen niet in de gereedschapskist worden geplaatst en daaruit worden gesleept. Ze hebben hun ontwerp en code achter de hand. De bestandsextensie voor gebruikersbesturingen is ascx.

16. Wat zijn verzegelde klassen in C#?

We maken verzegelde klassen wanneer we de over te nemen klasse willen beperken. Verzegelde modifier die wordt gebruikt om afleiding van een klasse te voorkomen. Als we met kracht een verzegelde klasse specificeren als basisklasse, treedt er een compileerfout op.

17. Wat is methode-overbelasting?

Overbelasting van methoden is het creëren van meerdere methoden met dezelfde naam met unieke handtekeningen in dezelfde klasse. Wanneer we compileren, gebruikt de compiler de overbelastingsresolutie om de specifieke methode te bepalen die moet worden aangeroepen.

18. Wat is het verschil tussen Array en Arraylist?

In een array kunnen we alleen items van hetzelfde type hebben. De grootte van de array is vast bij vergelijking. Een arraylist is vergelijkbaar met een array, maar heeft geen vaste grootte.

19. Kan een privé virtuele methode worden overschreven?

Nee, want buiten de les zijn ze niet toegankelijk.

20. Beschrijf de toegankelijkheidsmodifier 'beschermd intern'.

Beschermd Interne variabelen/methoden zijn toegankelijk binnen dezelfde assembly en ook vanuit de klassen die zijn afgeleid van deze bovenliggende klasse.

21. Wat zijn de verschillen tussen de klassen System.String en System.Text.StringBuilder?

System.String is onveranderlijk. Wanneer we de waarde van een stringvariabele wijzigen, wordt een nieuw geheugen toegewezen aan de nieuwe waarde en wordt de vorige geheugentoewijzing vrijgegeven. System.StringBuilder is ontworpen om een ​​concept te hebben van een veranderlijke tekenreeks waar een verscheidenheid aan bewerkingen kan worden uitgevoerd zonder aparte geheugenlocatie voor de gewijzigde tekenreeks toe te wijzen.

22. Wat is het verschil tussen System.Array.CopyTo() en System.Array.Clone() ?

Met behulp van de Clone()-methode maken we een nieuw array-object dat alle elementen in de originele Array bevat en met behulp van de CopyTo()-methode. Alle elementen van een bestaande array worden gekopieerd naar een andere bestaande array. Beide methoden voeren een ondiepe kopie uit.

23. Hoe kunnen we de elementen van de array in aflopende volgorde sorteren?

Met behulp van Sort()-methoden gevolgd door Reverse()-methode.

24. Noteer de C#-syntaxis om een ​​uitzondering op te vangen

Om een ​​uitzondering op te vangen, gebruiken we try-catch-blokken. Catch-blok kan een parameter van het type system.Exception hebben.

Bijv.: |_+_|

In het bovenstaande voorbeeld kunnen we de parameter weglaten uit het catch-statement.

25. Wat is het verschil tussen een interface en een abstracte klasse?

Interfaces hebben alle methoden met alleen declaratie maar geen definitie. In een abstracte klasse kunnen we enkele concrete methoden hebben. In een interfaceklasse zijn alle methoden openbaar. Een abstracte klasse kan privémethoden hebben.

26. Wat is het verschil tussen de methoden Finalize() en Dispose()?

Dispose() wordt aangeroepen wanneer we willen dat een object onbeheerde bronnen ermee vrijgeeft. Aan de andere kant wordt Finalize() voor hetzelfde doel gebruikt, maar het zorgt niet voor het verzamelen van afval van een object.

27. Wat zijn kringverwijzingen?

Cirkelverwijzing is een situatie waarin twee of meer bronnen van elkaar afhankelijk zijn, waardoor de vergrendelingsconditie wordt veroorzaakt en de bronnen onbruikbaar worden.

28. Wat zijn generieke geneesmiddelen in C#.NET?

Generieken worden gebruikt om herbruikbare codeklassen te maken om de coderedundantie te verminderen, de typeveiligheid en de prestaties te verhogen. Met behulp van generieke geneesmiddelen kunnen we verzamelingsklassen maken. Als u een generieke verzameling wilt maken, moet de naamruimte System.Collections.Generic worden gebruikt in plaats van klassen zoals ArrayList in de naamruimte System.Collections. Generics bevordert het gebruik van geparametriseerde typen.

29. Wat is een objectpool in .NET?

Een objectpool is een container met objecten die klaar zijn om te worden gebruikt. Het volgt het object dat momenteel in gebruik is, het totale aantal objecten in de pool. Dit vermindert de overhead van het maken en opnieuw maken van objecten.

30. Maak een lijst van de veelgebruikte soorten uitzonderingen in .net

ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOEndOfStreamException, NullReferenceExceptionOverflowException, OutOfMemoryException, OutOfMemoryException, OutOfMemoryException, OutOfMemoryException, OutOfMemoryException

31. Wat zijn aangepaste uitzonderingen?

Soms zijn er enkele fouten die moeten worden afgehandeld volgens de vereisten van de gebruiker. Er worden aangepaste uitzonderingen voor gebruikt en het zijn gedefinieerde uitzonderingen.

32. Wat zijn afgevaardigden?

Afgevaardigden zijn hetzelfde als functieaanwijzers in C++, maar het enige verschil is dat ze typeveilig zijn, in tegenstelling tot functieaanwijzers. Afgevaardigden zijn vereist omdat ze kunnen worden gebruikt om veel meer algemene typeveilige functies te schrijven.

33. Hoe erf je een klasse in een andere klasse in C#?

Colon wordt gebruikt als overervingsoperator in C#. Plaats gewoon een dubbele punt en vervolgens de klassenaam.

openbare klasse DerivedClass : BaseClass

34. Wat is de basisklasse in .net waarvan alle klassen zijn afgeleid?

 //This is a single line comment 

35. Wat is het verschil tussen methode-overriding en methode-overbelasting?

Bij het overschrijven van methoden wijzigen we de methodedefinitie in de afgeleide klasse die het methodegedrag verandert. Overbelasting van methoden is het creëren van een methode met dezelfde naam binnen dezelfde klasse met verschillende handtekeningen.

36. Wat zijn de verschillende manieren waarop een methode kan worden overbelast?

Methoden kunnen worden overbelast met verschillende gegevenstypen voor een parameter, een andere volgorde van parameters en een ander aantal parameters.

37. Waarom kun je de toegankelijkheidsmodifier voor methoden in de interface niet specificeren?

In een interface hebben we virtuele methoden die geen methodedefinitie hebben. Alle methoden zijn er om te worden overschreven in de afgeleide klasse. Daarom zijn ze allemaal openbaar.

38. Hoe kunnen we instellen dat de klasse wordt overgeërfd, maar voorkomen dat de methode wordt overschreven?

Verklaar de klasse als openbaar en verzegel de methode om te voorkomen dat deze wordt overschreven.

39. Wat gebeurt er als de overgenomen interfaces conflicterende methodenamen hebben?

Implementeren is aan jou, aangezien de methode zich in je eigen klasse bevindt. Er kan een probleem zijn wanneer de methoden van verschillende interfaces verschillende gegevens verwachten, maar wat de compiler betreft, zit je goed.

40. Wat is het verschil tussen een structuur en een klasse?

Structuren zijn variabelen van het waardetype en klassen zijn referentietypes. Structuren die op de stapel zijn opgeslagen, veroorzaken extra overhead, maar sneller ophalen. Structuren kunnen niet worden geërfd.

41. Hoe gebruik je nullable-types in .Net?

Waardetypen kunnen hun normale waarden of een null-waarde aannemen. Dergelijke typen worden nullable-typen genoemd. |__+_|

42. Hoe kunnen we een array maken met niet-standaardwaarden?

We kunnen een array maken met niet-standaardwaarden met Enumerable.Repeat.

43. Wat is het verschil tussen 'is' en 'as' operators in c#?

De 'is'-operator wordt gebruikt om de compatibiliteit van een object met een bepaald type te controleren, en het resultaat wordt als Boolean geretourneerd.

'as' operator wordt gebruikt voor het casten van een object naar een type of een klasse.

44. Wat is een multicast-afgevaardigde?

Een gedelegeerde waaraan meerdere handlers zijn toegewezen, wordt multicast-afgevaardigde genoemd. Elke handler is toegewezen aan een methode.

45. Wat zijn indexeerders in C# .NET?

Indexers staan ​​bekend als slimme arrays in C#. Hiermee kunnen de instanties van een klasse op dezelfde manier worden geïndexeerd als een array.

Bijv.: |_+_|

46. ​​Wat is het verschil tussen de 'throw' en 'throw ex' in .NET?

'Throw'-instructie behoudt de oorspronkelijke foutstack, terwijl 'throw ex' de stacktracering heeft vanaf hun werppunt. Het is altijd aan te raden om 'throw' te gebruiken omdat dit nauwkeurigere foutinformatie geeft.

47. Wat zijn C#-attributen en de betekenis ervan?

C# biedt ontwikkelaars een manier om declaratieve tags op bepaalde entiteiten te definiëren, bijv. Klasse, methode, etc. worden attributen genoemd. De informatie van het attribuut kan tijdens runtime worden opgehaald met Reflection.

48. Hoe implementeer je een singleton-ontwerppatroon in C#?

In een singleton-patroon kan een klasse slechts één instantie hebben en biedt deze wereldwijd een toegangspunt.

Bijv.: |_+_|

49. Wat is het verschil tussen directcast en ctype?

DirectCast wordt gebruikt om het type object te converteren waarvoor het runtime-type hetzelfde moet zijn als het opgegeven type in DirectCast.

Ctype wordt gebruikt voor conversie waarbij de conversie wordt gedefinieerd tussen de expressie en het type.

50. Is C#-code beheerde of onbeheerde code?

C# is beheerde code omdat Common Language-runtime C#-code kan compileren naar Intermediate Language.

51. Wat is Console-applicatie?

Een consoletoepassing is een toepassing die kan worden uitgevoerd in de opdrachtprompt in Windows. Voor elke beginner op .Net is het bouwen van een consoletoepassing idealiter de eerste stap om mee te beginnen.

52. Geef een voorbeeld van het verwijderen van een element uit de wachtrij

De dequeue-methode wordt gebruikt om een ​​element uit de wachtrij te verwijderen. |__+_|