Skillnad mellan versioner av "Delegater, LINQ och Metodgrupper"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(19 mellanliggande versioner av samma användare visas inte)
Rad 11: Rad 11:
 
= <b><span style="color:#931136">Vad är en delegat?</span></b> =
 
= <b><span style="color:#931136">Vad är en delegat?</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
 +
<big>
 +
<b><span style="color:red">Delegater</span></b> är referenser till anonyma funktioner (lambdauttryck).
 +
 +
Med delegater får lambdauttryck namn som kan användas för att referera till dem.
 +
</big>
 +
 
[[Image: Delegate_Def.jpg]]
 
[[Image: Delegate_Def.jpg]]
 
</div>
 
</div>
Rad 22: Rad 28:
  
 
= <b><span style="color:#931136">Programmet CountLINQ</span></b> =
 
= <b><span style="color:#931136">Programmet CountLINQ</span></b> =
<div class="ovnA">
+
<big><big>Samma sak som den egendefinierade metoden <b>MyCount()</b> ovan, gör LINQ-metoden <b>Count()</b> nedan:
<big>
+
En <b><span style="color:red">delegat</span></b> skapas i två steg:
+
  
1) Utanför Main() skapas en ny datatyp av typen <b><span style="color:red">delegate</span></b>. Ex.: <b>delegate void Dtype(string t);</b>  
+
Räknar antalet nollor, negativa och positiva tal i en array. Här skickas lambdauttryck direkt som parameter.</big></big>
 +
<div class="ovnC">
 +
[[Image: CountLINQ.jpg]]
 +
</div>
  
2) I Main() deklareras en delegat d till den nya delegattypen Dtype. Ex.: <b>Dtype d;</b>
 
  
Sedan används delegaten d för att namnge ett lambdauttryck (anonym funktion).  
+
= <b><span style="color:#931136">Programmet WriteLineOverr</span></b> =
 +
<div class="ovnA">
 +
[[Image: WriteLineOverr.jpg]]
 +
</div>
  
Sist anropas den anonyma funktionen med delegatens namn.
 
  
Namngivningen kan bli nödvändigt, när delegater skickas som parametrar till andra metoder.
+
= <b><span style="color:#931136">Programmet MethodGroup</span></b> =
</big>
+
<div class="ovnA">
[[Image: CountLINQ.jpg]]
+
[[Image: MethodGroup.jpg]]
 
</div>
 
</div>
  
 
<br>
 
<br>
  
= <b><span style="color:#931136">Läs om Delegater, LINQ och Metodgrupper i kursboken på sid 160-165.</span></b> =
+
= <b><span style="color:#931136">Läs om Delegater, LINQ och Metodgrupper i [http://www.mathonline.se/Progr_2/Boken%20Progr_2_Cs.pdf <span style="color:blue">kursboken</span>] på sid 180-185.</span></b> =
  
  
Rad 67: Rad 75:
  
  
[[Matte:Copyrights|Copyright]] © 2021 [https://www.techpages.se <b><span style="color:blue">TechPages AB</span></b>]. All Rights Reserved.
+
[[Matte:Copyrights|Copyright]] © 2021 <b><span style="color:blue">TechPages AB</span></b>. All Rights Reserved.

Nuvarande version från 27 november 2022 kl. 19.05

       Lektion 28          Genomgång          Övningar      


Vad är en delegat?

Delegater är referenser till anonyma funktioner (lambdauttryck).

Med delegater får lambdauttryck namn som kan användas för att referera till dem.

Delegate Def.jpg


Programmet DelegateParam

DelegateParam.jpg


Programmet CountLINQ

Samma sak som den egendefinierade metoden MyCount() ovan, gör LINQ-metoden Count() nedan:

Räknar antalet nollor, negativa och positiva tal i en array. Här skickas lambdauttryck direkt som parameter.

CountLINQ.jpg


Programmet WriteLineOverr

WriteLineOverr.jpg


Programmet MethodGroup

MethodGroup.jpg


Läs om Delegater, LINQ och Metodgrupper i kursboken på sid 180-185.


 










Copyright © 2021 TechPages AB. All Rights Reserved.