Penjelasan Anonymous Functions C# Asp.Net


Anonymous Fuctions adalah statement "inline" atau ungkapan yang dapat digunakan dimanapun tipe delegasi diharapkan. Kita dapat menggunakannya untuk menginisialisasi delegasi bernama atau passing  instance nama delegasi bernama sebagai parameter metode.

Ada dua jenis Anonymous Fuctions , yang dibahas secara terpisah dalam topik berikut:

  • Lambda Expressions. 
  • Anonymous Methods

  • Evolusi Delegasi di C #

Lambda Expressions. Dalam C # 1.0, Anda membuat sebuah instance dari sebuah delegasi dengan menginisialisasi secara eksplisit dengan metode yang didefinisikan di tempat lain dalam kode. C # 2.0 memperkenalkan konsep metode anonim sebagai cara untuk menulis blok pernyataan inline yang tidak disebutkan namanya yang dapat dieksekusi dalam doa delegasi.

C # 3.0 memperkenalkan ekspresi lambda, yang mirip konsepnya dengan metode anonim namun lebih ekspresif dan ringkas. Kedua fitur ini dikenal secara kolektif sebagai fungsi anonim. Secara umum, aplikasi yang menargetkan versi 3.5 dan yang lebih baru dari .NET Framework harus menggunakan ekspresi lambda. Contoh berikut menunjukkan evolusi pembuatan delegasi dari C # 1.0 ke C # 3.0:

class Test
{
    delegate void TestDelegate(string s);
    static void M(string s)
    {
        Console.WriteLine(s);
    }

    static void Main(string[] args)
    {
        // Original delegate syntax required 
        // initialization with a named method.
        TestDelegate testDelA = new TestDelegate(M);

        // C# 2.0: A delegate can be initialized with
        // inline code, called an "anonymous method." This
        // method takes a string as an input parameter.
        TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };

        // C# 3.0. A delegate can be initialized with
        // a lambda expression. The lambda also takes a string
        // as an input parameter (x). The type of x is inferred by the compiler.
        TestDelegate testDelC = (x) => { Console.WriteLine(x); };

        // Invoke the delegates.
        testDelA("Hello. My name is M and I write lines.");
        testDelB("That's nothing. I'm anonymous and ");
        testDelC("I'm a famous author.");

        // Keep console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
/* Output:
    Hello. My name is M and I write lines.
    That's nothing. I'm anonymous and
    I'm a famous author.
    Press any key to exit.
 */
Previous
Next Post »