[Visual 2015 C#]Co oznacza wyrażenie: = () =>

W tym miejscu zadajemy pytania na temat języka C#, dzielimy się swoją wiedzą, udzielamy wsparcia, rozwiązujemy problemy programistyczne.
Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

[Visual 2015 C#]Co oznacza wyrażenie: = () =>

Postautor: danielos » niedziela 10 kwie 2016, 17:54

Witam.

Podczas nauki programowania w visualu, natrafiłem na pewien błąd, gdzie na platformie msdn w rozwiązaniu było takie oto wyrażenie:

Kod: Zaznacz cały

 Action act = () => TextBox1.Lines = tbLinesList.ToArray();


Co oznacza i co robi:

Kod: Zaznacz cały

= () =>


Myślę, że jest to zapisanie w jednej linijce definicji metody/funkcji - a jak wy uważacie?

Tutaj jest link gdzie to znalazłem:
https://msdn.microsoft.com/query/dev14. ... 29&rd=true

(szukać pod Windows Forms apps)
a kod przykładu wygląda następująco:

Kod: Zaznacz cały

private void DoSomeWork(int msOfWork, List<string> tbLinesList)
{
    // simulate work
    var endTime = DateTime.Now.AddMilliseconds(msOfWork);
    while (DateTime.Now < endTime)
    {
        // spin
    };

    // report completion
    var msgFormat = "Some work completed in {0} ms on {1}UI thread.\n";
    var msg = String.Empty;
    if (TextBox1.InvokeRequired)
    {
        msg = String.Format(msgFormat, msOfWork, "non-");
        tbLinesList.Add(msg);
        Action act = () => TextBox1.Lines = tbLinesList.ToArray();
        TextBox1.Invoke( act );
    }
    else
    {
        msg = String.Format(msgFormat, msOfWork, String.Empty);
        tbLinesList.Add(msg);
        TextBox1.Lines = tbLinesList.ToArray();
    }
}
Można wszystko osiągnąć, wystarczy chcieć.

Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

Re: [Visual 2015 C#]Co oznacza wyrażenie: = () =>

Postautor: dambo » niedziela 10 kwie 2016, 18:21

To jest wyrażenie lambda - wyszukaj info pod tym hasłem

Edit:
Aj, było o tym w tym linku. Dokładnie tak jak piszesz - możesz jakąś mini funkcję tam podać.
Nowy blog o tematyce embedded -> https://www.embedownik.pl/

Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Re: [Visual 2015 C#]Co oznacza wyrażenie: = () =>

Postautor: danielos » niedziela 10 kwie 2016, 20:32

Dzięki za nakierowanie - Twoja podpowiedź okazała się bardzo pomocna.

Będę musiał sobie ją zapamiętać (oczywiście lambdę), bo pewnie będzie mi ona bardzo pomocna, w niektórych przypadkach.
Można wszystko osiągnąć, wystarczy chcieć.


Wróć do „Pisanie programów w C#”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości