Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
işleci, delegate temsilci türüne dönüştürülebilen anonim bir yöntem oluşturur. Anonim bir yöntem, birçok yönteme bağımsız değişken olarak kullanılan ve System.Action türleri gibi System.Func<TResult> türlere dönüştürülebilir.
Func<int, int, int> sum = delegate (int a, int b) { return a + b; };
Console.WriteLine(sum(3, 4)); // output: 7
Uyarı
Lambda ifadeleri, anonim işlev oluşturmak için daha kısa ve açıklayıcı bir yol sağlar. Lambda ifadesi oluşturmak için => işlecini kullanın:
Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4)); // output: 7
Dış değişkenleri yakalama gibi lambda ifadelerinin özellikleri hakkında daha fazla bilgi için bkz. Lambda ifadeleri.
işlecini delegate kullandığınızda parametre listesini atlayabilirsiniz. Bunu yaparsanız, oluşturulan anonim yöntem, aşağıdaki örnekte gösterildiği gibi herhangi bir parametre listesiyle bir temsilci türüne dönüştürülebilir:
Action greet = delegate { Console.WriteLine("Hello!"); };
greet();
Action<int, double> introduce = delegate { Console.WriteLine("This is world!"); };
introduce(42, 2.7);
// Output:
// Hello!
// This is world!
Bu, lambda ifadeleri tarafından desteklenmeyen anonim yöntemlerin tek işlevselliğidir. Diğer tüm durumlarda lambda ifadesi satır içi kod yazmanın tercih edilen bir yoludur. Yöntemi tarafından kullanılmayan anonim bir yöntemin iki veya daha fazla giriş parametresini belirtmek için atmaları kullanabilirsiniz:
Func<int, int, int> constant = delegate (int _, int _) { return 42; };
Console.WriteLine(constant(3, 4)); // output: 42
Geriye dönük uyumluluk için, yalnızca tek bir parametre adlandırılmışsa__, anonim bir yöntem içinde bu parametrenin adı olarak değerlendirilir.
Değiştiriciyi static anonim bir yöntemin bildiriminde kullanabilirsiniz:
Func<int, int, int> sum = static delegate (int a, int b) { return a + b; };
Console.WriteLine(sum(10, 4)); // output: 14
Statik anonim yöntem, kapsamları kapsayan yerel değişkenleri veya örnek durumunu yakalayamaz.
Bir delegate bildirmek için anahtar sözcüğünü de kullanırsınız.
Derleyici, bir yöntem grubundan oluşturulan temsilci nesnesini önbelleğe alabilir. Aşağıdaki yöntemi göz önünde bulundurun:
static void StaticFunction() { }
Yöntem grubunu bir temsilciye atadığınızda, derleyici temsilciyi önbelleğe alır:
Action a = StaticFunction;
C# dil belirtimi
Daha fazla bilgi için