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ürebileceğiniz anonim bir yöntem oluşturur.
C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.
Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.
Tavsiye
Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.
Anonim bir yöntemi ve System.Func<TResult>gibi System.Action türlere dönüştürebilirsiniz. Birçok yöntem bu türleri bağımsız değişken olarak kullanır.
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. Parametre listesini atlarsanız, aşağıdaki örnekte gösterildiği gibi herhangi bir parametre listesiyle temsilci türüne dönüştürebileceğiniz anonim bir yöntem oluşturursunuz:
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 işlevsellik, lambda ifadelerinin desteklemediğini anonim yöntemlerin tek özelliğidir. Diğer tüm durumlarda satır içi kod yazmak için lambda ifadesi kullanın. Yönteminin kullanmadığı 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 _, derleyici anonim bir yöntem içinde bu parametrenin adı olarak davranır _ .
Anonim bir yöntem bildirirken değiştiriciyi static kullanın:
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 temsilci türü bildirmek için anahtar sözcüğünü delegate kullanın.
Derleyici, bir yöntem grubundan oluşturduğu 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