Skillnad mellan versioner av "Lambdauttryck, LINQ och Delegater"
Taifun (Diskussion | bidrag) (Skapade sidan med '__NOTOC__ {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" | {{Not selected tab|Lektion 26...') |
Taifun (Diskussion | bidrag) m |
||
(22 mellanliggande versioner av samma användare visas inte) | |||
Rad 2: | Rad 2: | ||
{| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | ||
| style="border-bottom:1px solid #797979" width="5px" | | | style="border-bottom:1px solid #797979" width="5px" | | ||
− | {{Not selected tab|[[Lektion | + | {{Not selected tab|[[Lektion 27 (Csharp 2)|Lektion 27]]}} |
− | {{Selected tab|[[ | + | {{Selected tab|[[Lambdauttryck, LINQ och Delegater|Genomgång]]}} |
− | {{Not selected tab|[[Övningar | + | {{Not selected tab|[[Övningar 27 (Csharp 2)|Övningar]]}} |
| style="border-bottom:1px solid #797979" width="100%"| | | style="border-bottom:1px solid #797979" width="100%"| | ||
|} | |} | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Vad är Lambdauttryck?</span></b> = |
<div class="ovnE"> | <div class="ovnE"> | ||
− | [[Image: | + | [[Image: Lambdauttryck.jpg]] |
<big> | <big> | ||
− | <b><span style="color:red"> | + | <b><span style="color:red">Lambdauttryck</span></b> har inga namn. Därför kallas de även <b><span style="color:red">anonyma funktioner</span></b>. |
− | + | Lambdauttryck anropas på samma ställe som de definieras, vilket leder till en stor effektivitet. | |
− | + | <u>Motivationen:</u> | |
+ | |||
+ | Den traditionella kodningen av <b>korta</b> funktioner som metoder, dvs som medlemmar i en klass, | ||
+ | |||
+ | medför en overhead av både utvecklings- och exekveringstid, t.ex. parameteröverföringen. | ||
</big> | </big> | ||
</div> | </div> | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Programmet Lambda</span></b> = |
<div class="ovnC"> | <div class="ovnC"> | ||
− | [[Image: | + | [[Image: Lambda.jpg]] |
</div> | </div> | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Körexempel</span></b> = |
<div class="ovnA"> | <div class="ovnA"> | ||
− | [[Image: | + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: LambdaKorex.jpg]]</div> |
+ | </div> | ||
− | |||
− | |||
− | + | = <b><span style="color:#931136">Vad är LINQ?</span></b> = | |
− | < | + | <div class="ovnC"> |
+ | [[Image: LINQ.jpg]] | ||
</div> | </div> | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Programmet Delegate</span></b> = |
<div class="ovnA"> | <div class="ovnA"> | ||
− | < | + | [[Image: Delegate.jpg]] |
+ | |||
+ | <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> | ||
+ | |||
+ | 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). | ||
+ | |||
+ | Sist anropas den anonyma funktionen med delegatens namn. | ||
+ | |||
+ | Namngivningen kan bli nödvändigt, när delegater skickas som parametrar till andra metoder. | ||
+ | </big> | ||
</div> | </div> | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Körexempel</span></b> = |
− | <div class=" | + | <div class="ovnA"> |
− | [[Image: | + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: DelegateKorexa.jpg]]</div> |
</div> | </div> | ||
<br> | <br> | ||
− | = <b><span style="color:#931136">Läs om | + | = <b><span style="color:#931136">Läs om Lambdauttryck, LINQ och Delegater i [http://www.mathonline.se/Progr_2/Boken%20Progr_2_Cs.pdf <span style="color:blue">kursboken</span>] på sid 178-180.</span></b> = |
Rad 80: | Rad 98: | ||
− | [[Matte:Copyrights|Copyright]] © 2021 | + | [[Matte:Copyrights|Copyright]] © 2021 TechPages AB. All Rights Reserved. |
Nuvarande version från 27 november 2022 kl. 18.37
Lektion 27 | Genomgång | Övningar |
Vad är Lambdauttryck?
Lambdauttryck har inga namn. Därför kallas de även anonyma funktioner.
Lambdauttryck anropas på samma ställe som de definieras, vilket leder till en stor effektivitet.
Motivationen:
Den traditionella kodningen av korta funktioner som metoder, dvs som medlemmar i en klass,
medför en overhead av både utvecklings- och exekveringstid, t.ex. parameteröverföringen.
Programmet Lambda
Körexempel
Vad är LINQ?
Programmet Delegate
En delegat skapas i två steg:
1) Utanför Main() skapas en ny datatyp av typen delegate. Ex.: delegate void Dtype(string t);
2) I Main() deklareras en delegat d till den nya delegattypen Dtype. Ex.: Dtype d;
Sedan används delegaten d för att namnge ett lambdauttryck (anonym funktion).
Sist anropas den anonyma funktionen med delegatens namn.
Namngivningen kan bli nödvändigt, när delegater skickas som parametrar till andra metoder.
Körexempel
Läs om Lambdauttryck, LINQ och Delegater i kursboken på sid 178-180.
Copyright © 2021 TechPages AB. All Rights Reserved.