C# og .Net Flashcards

1
Q

Hvem har lavet C# og Hvorfor?

A

Det har Microsoft som en modsvar til Java.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvilke sprog basere C# sig på?

A

Det basere sig på Java, C++ og C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvordan er .Net akitekturen sat op?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvad står MSIL for?

A

Microsoft Intermediate Language.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hvad står CLR for?

A

Common Language runtime.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hvad står IL for?

A

Intermediate Language.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hvad står CTS for?

A

Common Type System.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvad står CLS for?

A

Common Language Specification.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvad er et namespace?

A

Det samme som en package I java.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvad er “using” I C#?

A

Det samme som import i Java.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Findes der primitive typer i C#?

A

Nej der findes kun klasser og objekter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvilke to forskellige typer af klasser og objekter findes der i C#?

A

Value types og reference types.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvad er valuetype?

A

Det er typer som fx int, char, String osv…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hvad er reference type?

A

Det er typer som fx ens egne klasser eller indbyggede klasser som ikke er en value type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hvad er Type inference?

A

Det er automatisk genkendelse af type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hvornår forkommer Type inference I C#?

A

Det forkommer når man skriver “var” foran et nyt deklareret variable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hvor mange bit er en int?

A

32 bit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Hvor mange bit er en long?

A

64 bit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Hvor mange bit er en Decimal?

A

128 bit high presision type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Hvor mange bit er en char?

A

16 bit Unicode character .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Hvad er widening i C#?

A

Det er implicit konvertering fra lav præcision til høj præcision fx at en float værdi automatisk konverteres hvis man næver samme værdi men en double. Det samme er med byte, int og typer som nedarver.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Hvad er Narrowing i C#?

A
  • Det er explicit konvertering hvor man går fra høj til lav præcision. Fx
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Hvad kendetegner en const i C#?

A
  1. Er implicit static.
  2. SKAL initialisers I erklæringen.
  3. Evaluates på compile time.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Hvad er readonly i C#?

A

Det er det samme som final i java, altså at en værdi ikke kan ændre på nogen måde men kan kun læses.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Hvad kendetegner readonly i C#?

A
  1. Kan være static og non-static.
  2. Kan KUN initialisers I fields eller constructor.
  3. Evalueres på runtime.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Hvad er en property I C#?

A
  • Det er det man bruger i C# i stedet for get og set metoder i java
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Hvad er de tre forskellige type kommentarer?

A
  1. “//” - Enkelt linje kommentar
  2. “/* */” - Flere linje kommentar
  3. “///“ - XML-Kommentar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Hvilke forskellige typer af visibility modificeres har klasser i C#

A
  1. Private - Synligt I klassen selv
  2. Public - Synligt i alle klasser
  3. Protected - Synligt i klassen selv og alle subklasser til klassen
  4. Internal - Syneligt I samme assembly
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Hvilke visibility modificeres er der til typerne i det yderste niveau i et namespace?
(Class, Struct, Enum, Interface eller delegate)

A
  1. Internal (Default)
  2. Public
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Hvilke visiblilty modificeres har en netsted class?

A
  1. Private (Default)
  2. Public
  3. Protected
  4. Internal
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Er der multiple nedarvning i C#?

A
  • Nej det er der ikke en klasse kan kun nedarve fra EN superklasse.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Kan en klasse implementere flere interfaces i C#?

A
  • Ja det kan de godt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Hvad er constructor chaining?

A
  • Det er når en constuctor i en klasse kalder en anden constructor i samme klasse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Hvordan bruges “Virtuel” i C#?

A

“Virtuel” bruges når man i en superklasse godt kunne tænke sig at have muligheden for at override den samme methode i en subklasse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Hvordan bruges abstrakte metoder?

A

Har ingen krop i superklassen og SKAL derfor overrides i subklassen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Hvordan bruges “Sealed” i C#?

A
  • Det bruges for at sikre at en virtuel methode ikke kan overrides i en subklasse.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Hvad sikre en sealed klasse?

A

Sikre mod nedarvning og override af virtuelle metoder.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Hvad kendetegner en struct?

A
  • Skal have en dekreteret contructor
  • Minder om en klasse men er letvægt
  • Indeholder fields og metoder
  • Kan ikke nedarves
  • Er en value type
  • Stammer fra en klasse som er en reference type
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Hvad er “is” operatoren?

A

En operator som spørger om et object er en bestemt type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Hvad er en “as” operator?

A

Prøver at caste en bestemt object til en bestemt type og returnere null hvis den fejler.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Kan en klasse nedarve fra en superklasse og implementere flere interfaces?

A

JA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Kan et interface nedarve fra et andet interface?

A

JA:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Hvad er en extension methode?

A

Et er en måde hvor man kan lave en methode til en klasse ved hjælp af en extension. Det er ren syntaktisk sukker.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Hvad er en delegate variable i C#?

A

Bliver brugt til at lave typesikre variable som peger på en methode som kan ændre runtime.

Som set her kan delegaten ændre methode runtime så længe at metoden opfylder delegatens parametre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Hvad skal der til for at en methode opfylder en delegate kriterie?

A
  1. Samme returtype
  2. Samme antal og type parametre
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Hvad bruger man delegates til i C#?

A

Til at lave variable som indeholder metoder.

47
Q

Hvad for du retur fra en methode som har flere forskellige delegates med forskellige returtyper?

A

Den sidste delegates retur type.

48
Q

Hvilke funktioner tilkobles delegate?

A
  1. .Invoke - Udfører en delegate
  2. .BeginInvoke - Starter en delegate til asynkron udførsel
  3. .EndInvoke - afslutter en delegate
  4. .GetInvocationList - Aflæser alle multicast delegate metoder
49
Q

Hvad bruges i stedet for to interfaces for at lave et observer patteren?

A
  • I C# bruges der events
50
Q

Hvad er lambda?

A
  • En funktion som tager et input og givet et output af samme eller anden type.
    Se eksempel herunder:
51
Q

Hvad står LINQ for?

A

Language Integrated Query.

52
Q

Hvilke tre prædefinerede delegates er der i LINQ?

A
  1. Action - Udføre noget kode
  2. Predicate - Til at filtrer objekter
  3. Func
53
Q

Hvordan bruges Predicate?

A
  • Fx List<T>.FindAll(Predicate<T>)</T></T>
  • Her ovenover kan man selv bruge koden til at definere en predicate om hvordan man gerne vil have den til at sortere en liste
54
Q

Hvad er en action i C#?

A
  • Det er en delegate som kan bruges til at definerer en action som kan ske når den er kaldt. Fx skal man lave en funktion som for hvert tal i en liste skal ændre tallet hvis den er over 10.
  • Her ses et eksempel
55
Q

Hvordan udtales LINQ?

A

“Link”.

56
Q

Hvad er LINQ?

A

Det er et microsoft framework som bruges til udvide C# med native data quering capabilities dvs. At man i sin kode kan ændre på data i forskellige alle dataformater fx. SQL relation database, XML, Objekter som arraks og andre Collections, osv…

57
Q

Hvad er en query method I LINQ?

A

En query method er en måde at bruge LINQ til at spørge om noget bestemt data.

58
Q

Hvad er en query expression?

A

Det er et værktøj i LINQ som fungere ligesom Query methods men med anden syntaks.

59
Q

Hvad for man ud af et LINQ query i C#?

A

Man får en IEnumerable som er et dataset som kan loopes igennem med en iterator eller laves om til et array ved brug af .toArray eller til en liste ved brug af .toList

60
Q

Hvad er en deferred execution I LINQ?

A

Det er en syntax som definere en query som ved aktivering returnere den efterspurgte data i form af en IEnumerable.

Syntax: from x in array where booleanStatement select x.

  • Bliver først udført når man fx bruger den i en foreach eller bruger .tolist
61
Q

Hvilke Aggregation operationer findes der i LINQ

A
  1. .Min() - Finder den mindste værdi
  2. .Max() - Finder den højeste værdi
  3. .Sum() - Finder summen af alle værdierne
  4. .Average() - Finder gennemsnittet af alle værdierne
  5. .Count() - Retunere det antal som opfylder queryien
  6. .Distinct() - Finder alle unikke værdier som opfylder queryen
62
Q

Hvad er LINQ orderby funktion?

A

Det er den måde som en IEnumerable som man får fra ens query er sorteret efter.
Den er ascending som default men man kan ændre det ved at skrive descending bag efter det som man gerne vil sortere på.

63
Q

Hvad er fordelene ved LINQ?

A
  1. Spare mange linjer kode
  2. Samme syntax uanset om det er fra en collection eller fra en database.
  3. Syntax checking ved compile time modsat sql som checker ved runtime
  4. Intellisence(Automatisk foreslag) virker i Visual Studio når man bygger query expressions
64
Q

Hvordan definere man et nyt variable i LINQ?

A

Med let.

65
Q

Forklar koden.

A

LINQ group by funktion som sortere på lastname og retunere newgroup

66
Q

Forklar koden.

A

Her ses et LINQ join operator som joiner addresser på zipcode

67
Q

Hvad står WPF for?

A

Windows Presentation Foundation.

68
Q

Hvad er XAML?

A

Det er det som adskiller GUI fra kode.

69
Q

Hvad er MVC?

A

Et framework der bruges til at bygge web applikationer i C#.

70
Q

Hvordan er arkitekturen i MVC opbygget?

A

Arkitekturen i MVC er opbygget af modelklasser, Viewklasser og Controllers

71
Q

Hvad er formålet med modelklasserne i MVC?

A

Data Access Layer. Definerer business klasser og de metoder der skal bruges på dem.

72
Q

Hvad er formålet med views i MVC?

A

Definere UI. Generere HTML dynamisk.

73
Q

Hvad er formålet med controllers i MVC?

A

Bindeled mellem views og modelklasser. Sørger for at den rigtige data videreformidles til Views på baggrund af bruger input.

74
Q

Hvordan skal en MVC controller efter konventionen navngives?

A

Ifølge konventionen skal alle controllers navn ende med “Controller”. Eks: ProductController.

75
Q

Hvilket sprog bruges i MVC Views?

A

Bruger template sproget Razor. Gør det muligt at skrive HTML og C# kode på samme tid.

76
Q

Hvordan er URL’en forbundet til MVC controlleren? Hvad er controllerens opgave?

A

URL’en matcher navnet på den route der er defineret af controlleren. Eks: /home/Index.
Det er controllerens opgave at generere et View når en kendt URL bliver benyttet.

77
Q

Er URL’en direkte forbundet til MVC Views?

A

Nej. Det er den controller som viewet tilhører, der står for at oprette viewet. Et specifikt view kan altså dermed IKKE tilgås direkte via en URL.

78
Q

Hvilke tre måder kan bruges til at sende data mellem MVC controller og view? Hvad kendetegner dem hver i sær?

A

ViewData:
- Tager et key/value par.
- Er ikke typestærkt.

ViewBag:
- Underliggende det samme som
ViewData.
- Ikke typestærkt. Ingen tjek for om alle
attributter er sat.

Model objekt:
- En instans af en modelklasse.
- Typestærkt.

79
Q

Hvad er Razor sproget i MVC for noget?

A

Razor sproget gør det muligt at blande HTML og C#. Bruges i Views.

80
Q

Hvad er en HTML Helper? Hvor bruges den?

A

Gør det muligt at skrive mere komprimeret og letlæselig Razor kode. Den komprimerede kode omskrives til det korrekte HTML output ved compilering.

81
Q

Hvordan bruges en HTML.Beginform?

A

Actionmethod skrives I første felt. Den findes i controlleren for den pågældende HTML tite
Andet input er controller navnet så fx HomeController hedder bare “Home” og til sidst skrives HTTP metoden

82
Q

Hvad er default setting for HTML.Beginform I henholdsvis MVC og Standart HTML form?

A
  1. MVC = post
  2. Standart = get
83
Q

Hvilke 6 input-helpers er der?

A
  1. Checkbox
  2. Radiobutton
  3. Hidden field
  4. Password
  5. Text area
  6. Text box
84
Q

Hvad er en Checkbox?

A

Det er en nem måde at oprette mange afkrydsningfelter ved at definere input med minimum name, type, og value der kan også tilkobles id

85
Q

Hvad er en Radio Button?

A

Det er en nem måde at lave en masse afkrydsning felter

86
Q

Hvad er forskellen på Checkbox og Radiobutton?

A

Forskellen er at checkboxes der kan du afkrydse med alle kombinationer hvorimod at radio buttons kan du kun afkrydse et felt ud af alle.

87
Q

Hvad er den strongly typed HTML helper?

A

Der er når der bruges lambdas expressions til at oprette en HTML Helper fx

88
Q

Hvad er fordelene ved at from strongly typed htmlhelpers?

A
  1. Fuld intelisense support
  2. Kode tjek ved compile time
  3. Man undgår stavefejl i parametre navne da der ellers vises fejl ved compiletime
89
Q

Hvad er fordelen ved at bruge HTML Helper til at lave dropdown lists?

A

Det er at HTML koden bliver mere overskuelig da du kan lave en viewbag som kan indeholde en masse værdier og så kun skrive en linje kode i raser for at få hele dropdown menuen

90
Q

Når du skriver en URL ind i din browser hvordan bestemmes det hvilken kode der skal køres?

A

Det er den routning mekanisme som bruges som bestemmer det og den har forskellige implementeringer alt efter sproget der bruges

91
Q

Hvad hedder det skal skrives efter roden i din URL når vi snakker Microsoft?

A

Segments

92
Q

Hvad er konventionel routing?

A

Det er routing hvor alt information typisk routes til program.cs

93
Q

Hvor blev konventionel routing routed til førhen?

A

RouteConfig Class

93
Q

Beskirv denne default routing?

A

Man kan se at det første segment er for controlleren og derefter en action og evt endnu et segment.

94
Q

Hvad er en dedicated conventional route?

A

Det er en hvor du kan lave en dedikeret route fra default uden at notify clients

95
Q

Hvad er attribute based routing?

A

Det er det vi kender hvor man kan skrive [Route] over et endpoint

96
Q

Hvordan kan man sætte constraints på en route og hvilken fejlgode giver den?

A

Du skal selv definere en contraint og tilføje den og hvis den kke opfyldes så giver browseren fejl 404

97
Q

Hvordan kan man lave contraints i attribute based routing?

A

Det gøres ved at man definere typen fx som her ved id skal være en int

98
Q

Hvordan laver man en section som kan bruges som template

A
99
Q

Hvad er explicit model validation?

A

Det er hvor du selv definere validation for forskellige senariere som det endpoint kan komme ud for

100
Q

Hvad er Property Validation Attributer

A

Det er data som kan gives over endpoints for at validere fx range sørger for at det de indsatte parametre skal opfylde de krav for at actionmethoden kan bruges

101
Q

Hvilke validation attributter har vi hørt om i undervisningen?

A
  1. Compare - Bruges fx hvis en email skal være den samme i to felter
  2. Range - Sørger for at det indsatte opfylder den range som du har defineret
  3. RegularExpression - Bruges til at udnytte regex til at sørger for at det indsatte opfylder specifikke krav fx email skal ligne en ægte email
  4. Required - Sørger for at den skal udfyldes ellers er den ikke valid
  5. StringLength - Sørger for at en string her en max længde
102
Q

Hvordan laver man en custom validation attribute?

A

Man laver en klasse som har navnet på den validation som du gerne vil lave og “Attribute” efter samt nedarver fra ValidationAttribute interfacet. Ved der efter kan du bare skrive navnet som en normal property validation.

103
Q

Hvad er en custom model validation attribute?

A

Det er en validation som du selv definere ligesom en property validation attribute men som sætte krav til oprettelsen af en object af en model klasse.

104
Q

Hvilken validation type eksekvere først at property og model?

A

Property

105
Q

Hvad er et ModelStae object?

A

Det er et objekt som indeholder validerings regler og deres fejl

106
Q

Forklar hvordan modelstate er brugt i denne kode?

A

Her bruges model state til at validere at employee har et valid state for der kan oprettes en bil

107
Q

Hvad er client side validation?

A

Det er når data bliver validere i takt med at brugeren indtaste information

108
Q

Hvad er de 5 karakteristika for REST

A
  1. Uniform interface - Simplificerer og decoupler akitekturen mellem client og server
  2. Stateless - Husker ikke hvem der kalder den
  3. Client-server - Separation of concerns
  4. Cacheable
  5. Layered system - Klinter skal ikke kunne vide om den er tilkoblet en end server eller en proxy server
109
Q

Hvad vil det sige at REST er resource based?

A

Det vil sige at den identificeres vis en eller flere URL’s

110
Q

Hvilke 5 principper skal en webservice overholde for at den kan kaldes RestFull?

A
  1. Scalability
  2. Simplicity
  3. Modifiability
  4. Visibility
  5. Portability
111
Q

Hvad er en SPA?

A

En singel page applikation

112
Q

Hvad er forskellen mellem SPA og en traditionel page applikation?

A
  • Client I SPA bruger fetch I stedet for form Post og modtager jsonfiler i stedet for HTML til at definere hvad der skal være på siden
113
Q

Hvad er fordelene ved fetch?

A
  1. Opdatere kun en lille del af en webside og laver ikke et full page reload
  2. Det kører asynkront