Inhoudsopgave[Zich verstoppen][Laten zien]
- 1. Wat is C# precies?
- 2. Wat onderscheidt C# van C?
- 3. Wat is precies een les?
- 4. Wat is een object precies?
- 5. Wat is het onderscheid tussen de termen statisch, openbaar en nietig?
- 6. Definieer constructeurs.
- 7. Wat is C# in de afvalinzameling?
- 8. Wat betekent structuur precies in C#?
- 9. Hoe wordt C#-code gecompileerd?
- 10. Beschrijf duidelijk de verschillende C#-klassen.
- 11. Wat zijn Jagged Arrays precies?
- 12. Wat is het verschil tussen de parameters out en ref?
- 13. Wat is een destructor in C#?
- 14. Wat is een indexeerder in C#?
- 15. Wat is het verschil tussen beheerde en onbeheerde code?
- 16. Beschrijf serialisatie.
- 17. Hoe verschillen velden en eigenschappen van elkaar in C#?
- 18. Hoe kun je het gebruik van statements in C# in detail beschrijven?
- 19. Hoe zou u meerdere interfaces met dezelfde methodenaam in dezelfde klasse implementeren?
- 20. Wat is in C# het onderscheid tussen taak en thread?
- 21. Wat is de finalize-functie in C#?
- 22. Maak een onderscheid tussen blokken finaliseren en finaliseren.
- 23. Beschrijf de C#-verwijderingsmethode in detail.
- 24. Wat is C# Method Overloading? Verhelderen.
- 25. Wat is het onderscheid tussen alleen-lezen en constanten?
- 26. Wat zijn gebruikersbeheer en aangepast beheer?
- 27. Wat is in C# een multicast-gemachtigde?
- 28. Wat is objectpooling precies in C#?
- 29. Wat zijn generieke geneesmiddelen precies in C#.NET?
- 30. Is het haalbaar om een private virtuele methode te negeren?
- 31. Onderscheid maken tussen methode-overbelasting en methode-overriding in C#?
- 32. Wat is in C# het onderscheid tussen String en StringBuilder?
- 33. Wat zijn afgevaardigden precies?
- 34. Wanneer moet u multithreading gebruiken in C# en wanneer moet u dit vermijden?
- 35. Wat is in C# een multicast-gemachtigde?
- 36. Wat is in C# het onderscheid tussen late binding en early binding?
- 37. Onderscheid maken tussen Directcast en Ctype?
- 38. Hoe wordt HashSet gebruikt in C#?
- 39. Geef uitleg over threadpooling in C#.
- 40. Wat is het onderscheid tussen de sleutelwoorden Const en ReadOnly in C#?
- 41. Welke details over het C# XSD-bestand kunt u verstrekken?
- 42. Wat betekenen Get en Set Accessor-eigenschappen voor u?
- 43. Wat is afhankelijkheidsinjectie precies in C#?
- Conclusie
C# (voorheen bekend als C sharp) is een objectgeoriënteerde programmeertaal die vaak door ontwikkelaars wordt gebruikt om verschillende activiteiten uit te voeren en meerdere doelen te bereiken.
Objectgeoriënteerde programmeertalen, zoals C++, Python en Java, zijn er in verschillende smaken. Deze programmeertalen zijn ontworpen om binnen een bepaald kader te functioneren. Evenzo wordt C# gemaakt en ontwikkeld voor een specifiek raamwerk, namelijk NET.
Het .NET-framework is gemaakt door Microsoft. Het biedt een enorm platform voor het ontwikkelen van applicaties, verklaringen, applicatie-instructies, enzovoort. C# kan worden gebruikt voor webontwikkeling, gaming, mobiele apps, Windows-toepassingen en andere soortgelijke projecten.
Met dergelijke voordelen is het gebruik van C# uitgebreid en is de behoefte aan specialisten die het nauwkeurig kunnen gebruiken, verdubbeld. Omdat C# zo'n populair programmeertaal, baseert een groot aantal grote en kleine bedrijven hun producten erop.
Oefen dus C#-vragen op basis- en gevorderd niveau om de interviews te winnen.
1. Wat is C# precies?
Microsoft C# is een eigentijdse, algemene, object georiënteerd programmeren taal. C# is bedoeld voor de Common Language Infrastructure (CLI), die uitvoerbare code en een runtime-omgeving omvat die het gebruik van talrijke talen op hoog niveau op diverse computersystemen en architecturen mogelijk maakt.
2. Wat onderscheidt C# van C?
C staat meestal bekend als de procedurele taal, terwijl C# meer objectgeoriënteerd is. Het belangrijkste verschil is dat C# geautomatiseerde afvalverzameling mogelijk maakt via de Common Language Runtime (CLR), terwijl C dat niet doet. C# vereist dat het.NET-framework wordt uitgevoerd, terwijl C een platformonafhankelijke taal is.
3. Wat is precies een les?
Een klasse dient als sjabloon voor het bouwen van objecten. Samen met technieken heeft het attributen. Van een enkele klasse kunnen we verschillende instanties van een object produceren.
4. Wat is een object precies?
Een klasse-instantie die bekend staat als een object, is hoe we toegang krijgen tot de functionaliteiten van een klasse. Om een object te construeren, kunnen we het sleutelwoord "nieuw" gebruiken. De functies, gegevensleden en het gedrag van een klasse die een object in het geheugen produceert, worden opgeslagen.
5. Wat is het onderscheid tussen de termen statisch, openbaar en nietig?
Overal in het programma heeft u toegang tot openbaar gedefinieerde variabelen. Statische variabelen zijn wereldwijd toegankelijk zonder de vereiste om een klasse-instantie te bouwen. In C# wordt een typemodifier genaamd Void gebruikt om het retourtype van een methode aan te geven.
6. Definieer constructeurs.
Een constructor is een klassespecifieke ledenfunctie. Wanneer een object wordt gevormd, wordt de constructor automatisch aangeroepen. De klasse construeert alle waarden van gegevensleden terwijl deze wordt geïnitialiseerd.
7. Wat is C# in de afvalinzameling?
Het proces van het opschonen van geheugen dat is ingenomen door ongewenste items, staat bekend als afvalinzameling. Een bepaalde hoeveelheid geheugen wordt automatisch toegewezen aan een klasseobject wanneer het wordt gemaakt in het heapgeheugen. Nu je klaar bent met werken aan het item, is de geheugenruimte die het voorheen in beslag nam, verspild. Het geheugen moet worden vrijgemaakt.
8. Wat betekent structuur precies in C#?
In C# is een structuur een gegevenstype dat is samengesteld uit talrijke gegevenstypen, zoals methoden, velden, constructors, constanten, eigenschappen, indexeerders, operators en zelfs andere structuren. Een structuur helpt bij het consolideren van vele soorten gegevens in een enkele eenheid. Op deze manier zijn ze analoog aan cursussen. Structuren zijn waardetypen, terwijl klassen referentietypen zijn.
9. Hoe wordt C#-code gecompileerd?
Wanneer een project wordt gemaakt, wordt de C#-broncode gecompileerd in Intermediate Language (IL). IL is een verzameling instructies die machinecode genereert voor uitvoering op een machineprocessor. Code wordt in vier fasen van de preprocessor naar de compiler, vervolgens naar de assembler en ten slotte naar de linker gestuurd.
10. Beschrijf duidelijk de verschillende C#-klassen.
- Statisch: het is het soort klasse dat niet kan worden geïnstantieerd, daarom kunnen we het nieuwe trefwoord niet gebruiken om er een object van te maken, maar we kunnen de leden van de klasse rechtstreeks aanroepen door hun klassenaam te gebruiken.
- Abstract: gebruik het abstracte trefwoord om abstracte klassen te definiëren. Er kunnen geen objecten worden gemaakt voor abstracte klassen. Het moet worden geërfd in een subklasse als u het wilt gebruiken. Eenvoudige definities van abstracte en niet-abstracte methoden zijn toegestaan binnen een klasse Abstract.
- Gedeeltelijk: met deze klasse kunt u uw eigenschappen, methoden en gebeurtenissen scheiden in verschillende bronbestanden, die vervolgens tijdens het bouwen worden gecombineerd tot één enkele klasse.
- Verzegeld: Een verzegelde klasse kan niet worden geërfd van een andere klasse en heeft beperkte kenmerken. Toegangsmodificatoren kunnen niet aan de verzegelde klasse worden toegevoegd.
11. Wat zijn Jagged Arrays precies?
Een array met array-elementen wordt een gekartelde array genoemd. Elementen van Jagged Arrays kunnen vele soorten en maten hebben.
12. Wat is het verschil tussen de parameters out en ref?
Wanneer een argument als ref wordt opgegeven, moet de parameter worden geïnitialiseerd voordat deze aan de methode wordt doorgegeven. Een out-parameter daarentegen hoeft niet te worden geïnitialiseerd voordat deze aan een methode wordt geleverd.
13. Wat is een destructor in C#?
Een destructor is een type methode in C# dat deel uitmaakt van een klasse. De primaire functie van een destructor is het verwijderen van instanties van een klasse wanneer deze niet langer nodig zijn om geheugen vrij te maken. Destructors worden ook wel finalizers genoemd.
14. Wat is een indexeerder in C#?
Indexers worden in C# gebruikt om instanties van een klasse of structuur te vinden. De geïndexeerde waarden zijn daarom op dezelfde manier toegankelijk als een array, maar zonder expliciet een type of instantielid te hoeven declareren.
15. Wat is het verschil tussen beheerde en onbeheerde code?
Met beheerde code kunt u code uitvoeren in het.NET-framework op een beheerde CLR-runtimeomgeving.
Gecontroleerde code wordt uitgevoerd op de beheerde runtime-omgeving in plaats van op het besturingssysteem. Biedt een verscheidenheid aan services, zoals een prullenbak, afhandeling van uitzonderingen, enzovoort.
Onbeheerde code is code die niet wordt uitgevoerd op de CLR en buiten het.NET-framework werkt. Ze leveren geen taaldiensten van hoog niveau en werken dus zonder. C++ is zo'n voorbeeld.
16. Beschrijf serialisatie.
Er moet een stroom bytes worden gemaakt van het item om het via een netwerk over te dragen. Serialisatie is het omzetten van een item in een stroom bytes. Om een artikel te kunnen serialiseren, moet de serialisatie-interface zijn geïmplementeerd. Het tegenovergestelde van het construeren van een object uit een stroom bytes wordt deserialisatie genoemd.
17. Hoe verschillen velden en eigenschappen van elkaar in C#?
Een veld is een klasselid of een object van welke aard dan ook dat dient als locatie voor het opslaan van gegevens, terwijl een eigenschap een klasselid is dat een methode biedt voor het lezen, schrijven en berekenen van de waarde van een privéveld.
18. Hoe kun je het gebruik van statements in C# in detail beschrijven?
Het gebruik van de instructie wordt gebruikt om het gebruik van een of meer bronnen binnen de toepassing te beperken. De middelen worden constant verbruikt en vrijgegeven.
De primaire taak van deze verklaring is om ongewenste bronnen te beheren en ze automatisch vrij te geven. Zodra het object dat de bron gebruikt, is gevormd, moet u ervoor zorgen dat de functie Disposeren van het object wordt aangeroepen om de bronnen vrij te geven die voor dat object nodig zijn; hier komt het gebruik van statements goed van pas.
19. Hoe zou u meerdere interfaces met dezelfde methodenaam in dezelfde klasse implementeren?
Om meerdere interfaces met dezelfde methodenaam te implementeren, moet u ze niet binnen de hoofdtekst van de functie implementeren. In plaats daarvan zou u de naam van de interface rechtstreeks in de body van de methode opgeven. De compiler herkent naar welke interfacemethoden wordt verwezen en lost het probleem op.
20. Wat is in C# het onderscheid tussen taak en thread?
Een thread is een echte besturingssysteemthread met zijn eigen stack- en kernelbronnen. Draad biedt de meeste controle. Met de thread kunt u Afbreken (), Onderbreken () of Hervatten (). De status van een thread kan worden geobserveerd of de attributen, zoals stapelgrootte, appartementstatus en cultuur, kunnen worden ingesteld. De CLR houdt een verzameling threads bij die zijn omwikkeld door ThreadPool.
De Task Parallel Library heeft een klasse genaamd Task. In tegenstelling tot de ThreadPool heeft de taak geen eigen besturingssysteemthread. Taken worden uitgevoerd door de TaskScheduler, hoewel de standaardplanner wordt uitgevoerd door de ThreadPool. Het is mogelijk om op de hoogte te worden gesteld wanneer een taak is voltooid en om een resultaat te verkrijgen.
21. Wat is de finalize-functie in C#?
De objectklasse die wordt gebruikt voor opschoningsacties definieert de functie finalize(). Wanneer een verwijzing naar een object gedurende een langere periode niet wordt gebruikt, zal de vuilnisman deze functie vaak aanroepen.
De Garbage Collector maakt automatisch gecontroleerde bronnen vrij, maar als u onnodige bronnen wilt vrijmaken, zoals bestandsingangen, gegevensverbindingen, enzovoort, moet u expliciet de finalize-functie implementeren.
22. Maak een onderscheid tussen blokken finaliseren en finaliseren.
Het voltooide blok wordt aangeroepen nadat de try-and-catch-blokken zijn voltooid, aangezien het nodig is voor het afhandelen van uitzonderingen. Het codeblok wordt uitgevoerd ongeacht of de uitzondering is opgevangen. De code van het blok is over het algemeen schoner.
De finalize-methode wordt aangeroepen vlak voor de ophaling van afval. De belangrijkste verantwoordelijkheden van de voltooide methode zijn het opruimen van onbeheerde code, die automatisch wordt geactiveerd wanneer een instantie niet opnieuw wordt aangeroepen.
23. Beschrijf de C#-verwijderingsmethode in detail.
De functiedisposof() maakt de ongebruikte resources van een object vrij. Ongebruikte bronnen, zoals bestanden, gegevensverbindingen, enzovoort. Deze functie wordt gespecificeerd in de interface IDisposable, die door de klasse wordt geïmplementeerd door de interface IDisposable body te declareren.
De functie Disposeren wordt niet automatisch aangeroepen; de programmeur moet het handmatig implementeren voor een effectief gebruik van bronnen.
24. Wat is C# Method Overloading? Verhelderen.
Methode-overloading is een typische benadering in C# die wordt gebruikt om een aantal methoden met dezelfde naam en gespecificeerde handtekeningen te construeren. Deze procedure wordt herhaald met dezelfde klasse.
Wanneer de methode-overbelastingsprocedure is voltooid, begint de compiler met bewerkingen om gespecificeerde acties aan te roepen op basis van de methode-overbelasting.
25. Wat is het onderscheid tussen alleen-lezen en constanten?
Constante variabelen worden tijdens de compilatie gedeclareerd en geïnitialiseerd. Daarna kan deze waarde niet meer worden gewijzigd. Aan de andere kant wordt alleen-lezen gebruikt zodra een waarde is toegewezen tijdens runtime.
26. Wat zijn gebruikersbeheer en aangepast beheer?
Gecompileerde code wordt gebruikt om aangepaste besturingselementen te ontwikkelen. Deze kunnen in de toolbox worden opgenomen en zijn eenvoudig in gebruik. Door deze bedieningselementen te slepen en neer te zetten, kunnen ontwikkelaars ze opnemen in hun webformulieren.
Gebruikersbedieningen en ASP-inbegrepen bestanden lijken veel op elkaar. Ze zijn ook eenvoudig te maken. Gebruikersbedieningen kunnen daarentegen niet aan de toolbox worden toegevoegd. Ze kunnen er ook niet uit worden getrokken en laten vallen.
27. Wat is in C# een multicast-gemachtigde?
Een multicast-deelnemer onderhoudt tegelijkertijd verwijzingen of adressen naar verschillende functies. Wanneer we de multicast-gedelegeerde aanroepen, roept deze ook alle andere functies op waarnaar hij verwijst. Om meerdere methoden aan te roepen, gebruikt u de hele handtekening van de methode, net als de gedelegeerde. Als voorbeeld:
28. Wat is objectpooling precies in C#?
Objectpooling is een ontwerptechniek in software die dingen recyclet in plaats van ze opnieuw op te bouwen. Het bereikt dit door gekozen items in een pool op te slaan en ze beschikbaar te maken voor gebruik wanneer een toepassing erom vraagt. Deze procedure verbetert de prestaties door het onnodig genereren van objecten te verminderen.
29. Wat zijn generieke geneesmiddelen precies in C#.NET?
Generics worden gebruikt om herbruikbare codeklassen te maken om coderedundantie te verminderen, typeveiligheid te verbeteren en snelheid te verbeteren. We kunnen collectieklassen construeren met generieke geneesmiddelen.
In het systeem moet een generieke naamruimte worden gebruikt in plaats van klassen zoals ArrayList. Naamruimte voor collecties. Het gebruik van geparametriseerde typen wordt aangemoedigd door generieke geneesmiddelen.
30. Is het haalbaar om een private virtuele methode te negeren?
Een private virtuele methode kan niet worden overschreven omdat deze privé is voor de klasse en niet toegankelijk is van buitenaf.
31. Onderscheid maken tussen methode-overbelasting en methode-overriding in C#?
Methode overschrijven is het proces waarbij de fundamentele definitie van een afgeleide klasse wordt gewijzigd. De methoden van de afgeleide klasse gedragen zich uiteindelijk anders als gevolg van deze strategie.
Overloading van methoden daarentegen kan worden beschreven als het genereren van veel methoden met dezelfde naam maar met verschillende handtekeningen onder dezelfde klasse.
32. Wat is in C# het onderscheid tussen String en StringBuilder?
Een tekenreeksobject is onveranderlijk, wat betekent dat het niet kan worden gewijzigd als het eenmaal is gemaakt. Elke poging om het tekenreeksobject te wijzigen, resulteert in de aanmaak van een nieuw tekenreeksobject.
Een stringbuilder-object daarentegen is kneedbaar en kan naar eigen goeddunken worden gewijzigd.
33. Wat zijn afgevaardigden precies?
In C++ zijn afgevaardigden in wezen hetzelfde als functieaanwijzers. Het enige verschil tussen de twee is dat afgevaardigden typeveilig zijn, terwijl functieaanwijzers dat niet zijn. Afgevaardigden zijn nodig omdat ze de constructie van generieke typeveilige functies mogelijk maken.
34. Wanneer moet u multithreading gebruiken in C# en wanneer moet u dit vermijden?
Multithreading, ook wel threading genoemd, is een effectieve benadering om de snelheid van een programma te verhogen waarin meerdere activiteiten gelijktijdig worden uitgevoerd. Hierdoor kunnen verschillende threads onafhankelijk worden uitgevoerd, in plaats van te wachten tot de voorgaande stap is voltooid. Dit heeft de mogelijkheid om het tempo van een programma te verhogen.
Wanneer echter meerdere processen van het programma met elkaar verbonden zijn, wordt multithreading niet aanbevolen. Als stap B bijvoorbeeld afhankelijk zou zijn van het eerst voltooien van stap A, zou multithreading prestatieproblemen en softwarefouten veroorzaken. Threading wordt steeds gevoeliger naarmate een programma ingewikkelder wordt.
35. Wat is in C# een multicast-gemachtigde?
Een multicast-gedelegeerde in C# verwijst, in tegenstelling tot een basisgedelegeerde, naar talloze doelmethoden. Wanneer een multicast-deelnemer wordt gebruikt, worden alle functies waarnaar de deelnemer verwijst, aangeroepen. Ze worden geïmplementeerd met behulp van de klasse MulticastDelegate van het systeem.
36. Wat is in C# het onderscheid tussen late binding en early binding?
- Vroege binding vindt plaats tijdens het compileren, terwijl late binding plaatsvindt tijdens runtime.
- Late binding is vaak langzamer dan vroege binding omdat het tijdens runtime plaatsvindt.
- In tegenstelling tot late binding, waarbij het object wordt gebruikt om methodeaanroepen op te lossen, lost vroege binding methodeaanroepen op met behulp van klasse-informatie.
37. Onderscheid maken tussen Directcast en Ctype?
Het soort object dat vereist dat het runtime-type overeenkomt met het opgegeven type in DirectCast, wordt geconverteerd met behulp van DirectCast.
Wanneer een conversie wordt gespecificeerd tussen een uitdrukking en een type, wordt Ctype gebruikt.
38. Hoe wordt HashSet gebruikt in C#?
In C# is een HashSet een ongeordende verzameling van verschillende waarden. Over het algemeen wordt het gebruikt om te voorkomen dat dubbele elementen in een verzameling worden ingevoegd, en het presteert bij deze taak beter dan een lijst.
De klasse HashSet, die afstamt van het systeem, wordt gebruikt om deze te implementeren.
39. Geef uitleg over threadpooling in C#.
In C# is een threadpool een verzameling threads. Deze threads worden gebruikt om taken uit te voeren zonder de functionaliteit van de primaire thread te verstoren. Een thread in een threadpool keert terug naar de threadpool wanneer deze is voltooid.
De klasse System bevat klassen die de thread in de threadpool en zijn acties afhandelen. Draadsnijden. ThreadPool is een naamruimte.
40. Wat is het onderscheid tussen de sleutelwoorden Const en ReadOnly in C#?
- ReadOnly kan niet binnen de methode worden gedeclareerd, terwijl Const dat wel kan.
- Const is een constante tijdens het compileren, terwijl ReadOnly een runtime-constante is.
- ReadOnly-waarden kunnen worden gewijzigd, maar Const-waarden niet.
41. Welke details over het C# XSD-bestand kunt u verstrekken?
XSD staat voor XML Schema Definitie. Als er geen XSD-bestand aan het XML-bestand is gekoppeld, kan het alle attributen, elementen en tags hebben. Het XSD-bestand biedt een raamwerk voor het XML-bestand en bepaalt welke componenten en attributen in het XML-bestand aanwezig moeten zijn, evenals hun volgorde.
42. Wat betekenen Get en Set Accessor-eigenschappen voor u?
In C# worden Get en Set accessors genoemd omdat ze zijn gemaakt met behulp van eigenschappen. Een eigenschap maakt lezen en schrijven naar de waarde van een privéveld mogelijk. Dergelijke privévelden zijn toegankelijk via accessors.
Terwijl de eigenschap Get wordt gebruikt om de waarde van een eigenschap te retourneren, wordt de eigenschap Set gebruikt om de waarde in te stellen.
43. Wat is afhankelijkheidsinjectie precies in C#?
Dependency Injection (DI) is een ontwerptechniek in C# die wordt gebruikt om losjes gekoppelde programmering te creëren. Deze procedure draagt het maken en binden van afhankelijke objecten over buiten de klasse waarop ze vertrouwen. Het belangrijkste doel is om toekomstige codewijzigingen beter beheersbaar te maken.
Conclusie
C# is de primaire programmeertaal die wordt gebruikt in alle programmeertalen van een hoger niveau. Er is veel vraag naar C#-ontwikkelaars en ze kunnen aantrekkelijke carrièremogelijkheden vinden in sectoren als front-endontwikkeling, back-endprogrammering en app-ontwikkeling. En omdat Microsoft het ondersteunt, zal de populariteit van C# alleen maar groeien.
Bovenstaande zijn de meest cruciale C#-interviewvragen voor ervaren professionals en beginners. Zien Hashdork's interviewserie voor hulp bij de voorbereiding van een sollicitatiegesprek.
Laat een reactie achter