C# Academy · leksjon

Utforske delegater og lambdaer

Forstå delegater og lambda-uttrykk for kortfattet og fleksibel kode

Leksjon 4 av 510 trinn

Utforske delegater og lambdaer er en gratis leksjon i C# Academy på CoddyKit. Dette er leksjon 4 av 5. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C# Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C# Academy inneholder totalt 5 leksjoner.

Bruke lambda-uttrykk med delegater

Lambda-uttrykk kan tilordnes direkte til delegater. Eksempel:

Utforske delegater og lambdaer — illustrasjon 1

Hva er en delegat?

En delegat er en type som inneholder referanser til metoder med en bestemt signatur. Delegater gjør det mulig å sende metoder som parametere eller tilordne dem dynamisk.

Eksempel: Delegater brukes ofte til tilbakeringinger og hendelseshåndtering.

Definere og bruke delegater

Du kan definere en delegat ved hjelp av nøkkelordet delegate. Eksempel:

Viktig poeng: Delegater gjør det mulig å kapsle inn metoder.

using System;

class Program {
    // Define a delegate
    public delegate void PrintDelegate(string message);

    static void Main() {
        PrintDelegate print = PrintMessage; // Assign method to delegate
        print("Hello, Delegates!"); // Call the method via the delegate
    }

    static void PrintMessage(string message) {
        Console.WriteLine(message);
    }
}

Hva er et lambda-uttrykk?

Et lambda-uttrykk er en kortfattet måte å representere en anonym metode på i C#. Det bruker syntaksen (parameters) => expression.

Eksempel: (x, y) => x + y representerer en metode som legger sammen to tall.

Tips: Lambda-uttrykk brukes ofte sammen med LINQ og delegater for å gjøre koden kortere og tydeligere.

Lambda-uttrykk med delegater

Bruke lambda-uttrykk med delegater

Lambda-uttrykk kan tilordnes direkte til delegater. Eksempel:

Viktig poeng: Lambda-uttrykk gjør koden kortere og enklere å lese.

using System;

class Program {
    public delegate int MathOperation(int x, int y);

    static void Main() {
        MathOperation add = (x, y) => x + y; // Lambda for addition
        Console.WriteLine("Result: " + add(10, 20)); // Outputs: Result: 30
    }
}

Multicast-delegater

En enkelt delegat kan referere til flere metoder. Alle metodene kalles i rekkefølge. Eksempel:

using System;

class Program {
    public delegate void Notify(string message);

    static void Main() {
        Notify notify = PrintMessage;
        notify += LogMessage;

        notify("Hello, Multicast Delegates!"); // Calls both methods
    }

    static void PrintMessage(string message) {
        Console.WriteLine("Print: " + message);
    }

    static void LogMessage(string message) {
        Console.WriteLine("Log: " + message);
    }
}

Øvingsoppgave

Opprett et program som bruker delegaten StringOperation til å utføre strengoperasjoner, for eksempel å konvertere en streng til store bokstaver og snu den. Eksempel:

using System;

class Program {
    public delegate string StringOperation(string input);

    static void Main() {
        StringOperation operations = ToUpperCase;
        operations += ReverseString;

        string input = "Hello";
        foreach (var operation in operations.GetInvocationList()) {
            Console.WriteLine(((StringOperation)operation)(input));
        }
    }

    static string ToUpperCase(string input) {
        return input.ToUpper();
    }

    static string ReverseString(string input) {
        char[] chars = input.ToCharArray();
        Array.Reverse(chars);
        return new string(chars);
    }
}

Beste praksis for delegater og lambda-uttrykk

Her er noen anbefalte fremgangsmåter:

  • Bruk delegater til å implementere tilbakeringinger og hendelseshåndtering.
  • Foretrekk lambda-uttrykk for kortfattet og tydelig kode.
  • Kombiner lambda-uttrykk med LINQ for effektiv databehandling.
  • Unngå overdrevent komplekse lambda-uttrykk for å bevare lesbarheten.

Tips: Bruk meningsfulle parameternavn i lambda-uttrykk for å gjøre koden tydeligere.

Godt jobbet!

Gratulerer! Du har lært hvordan du bruker delegater og lambda-uttrykk til å skrive funksjonell og hendelsesdrevet kode i C#. I neste leksjon skal vi utforske refleksjon i C#, en kraftig funksjon for typeanalyse under kjøring. La oss fortsette å kode!

Utforske delegater og lambdaer — illustrasjon 10
Gratis å komme i gang

Lær deg C# med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
93
Leksjoner
346

Ofte stilte spørsmål

Er leksjonen «Utforske delegater og lambdaer» gratis?

Ja – hele teksten i «Utforske delegater og lambdaer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av C# Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i C# Academy inneholder totalt 5 leksjoner.

Hva lærer jeg i «Utforske delegater og lambdaer»?

Forstå delegater og lambda-uttrykk for kortfattet og fleksibel kode Du øver på C# Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C# Academy?

Ingen tidligere erfaring er nødvendig. C# Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 5.

Hvor lang tid tar leksjonen «Utforske delegater og lambdaer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C# Academy-leksjonen?

Ja. Alle C# Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Generics i C#
  2. Async og Await: Arbeide med asynkron kode
  3. Forstå tråder og oppgaver
  4. Utforske delegater og lambdaer
  5. Forstå refleksjon i C#
← Tilbake til C# Academy