Aracılığıyla paylaş


Anonim işlevler (C# Programlama Kılavuzu)

Bir anonim "satır içi" deyimi ya da bir temsilci türü beklenen her yerde kullanılabilecek ifade işlevidir.Adlandırılmış bir temsilci başlatmak ya da yöntemi parametre olarak adlandırılan bir temsilci türü yerine geçirmek için kullanabilirsiniz.

Aşağıdaki konular, tek tek ele anonim İşlevler, iki tür vardır:

C# [NULL]'ta temsilciler evrimi

C# 1.0, açıkça onu başka bir yerde kodda tanımlanan yöntemi ile başlatarak temsilci örneğini oluşturdu.C# 2.0 temsilci çağırma içinde yürütülen adlandırılmamış satır içi deyimi bloğu yazmak için bir yol olarak anonim yöntemler kavramı kullanılmaya başlandı.C# 3.0 anonim yöntemler için kavram benzer ancak daha etkileyici ve öz lambda ifadeleri kullanılmaya başlandı.Bu iki özellik topluca olarak bilinen Anonim işlevler.Genel olarak, uygulamaları, hedef sürüm 3.5 ve sonrası, .NET Framework lambda ifadeleri kullanmalısınız.

Aşağıdaki örnek, C# 3.0 için temsilci yaratma C# 1.0 den evrimi gösterir:

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.
 */

C# dil belirtimi

Daha fazla bilgi için bkz: C# dil belirtiminin. Dil belirtimi, C# sözdizimi ve kullanımı için nihai kaynaktır.

Ayrıca bkz.

Başvuru

İfadeleri, ifadeler ve işleçler (C# Programlama Kılavuzu)

Lambda ifadeleri (C# Programlama Kılavuzu)

Temsilciler (C# Programlama Kılavuzu)

Kavramlar

İfade ağaçları (C# ve Visual Basic)