سؤال

هل المسند متاح في أي مكان في .NET؟من ام اس دي ان http://msdn.microsoft.com/en-us/library/bfcke1bz.aspx, ، لا أرى المسند في أي مكان.أرى مجهولًا يُرجع كلمة منطقية ولكن لا توجد كلمة عامة أو كلمة رئيسية "مسند".

هل كانت مفيدة؟

المحلول

وبدلا من مضمنة مفوض لالمسند، يمكن استخدامه كنوع ثم تمريرها في وإليك مثال:

var list = new List<int>();
list.AddRange(Enumerable.Range(1, 10));
Predicate<int> p = delegate(int i)
                   {
                      return i < 5;
                   };
list.RemoveAll(p);
list.ForEach(i => Console.WriteLine(i));

تعديل: لإعلان المسند مع طريقة القائمة، يمكنك استخدام:

Predicate<int> p = IsLessThanFive;

public bool IsLessThanFive(int number)
{
    return number < 5;
}

والبدائل، والتي هي أكثر شيوعا، شأنه لقد:

list.RemoveAll(delegate(int i) { return i < 5; });
// or...
list.RemoveAll(i => i < 5);

تعديل: للرد على سؤال آخر في تعليق إلى وظيفة أخرى، وهو مندوب هو النوع الذي يعرف توقيع الأسلوب، ويمكن استخدامها لتمرير طرق لأساليب أخرى كوسائط. إذا كنت على دراية إلى حد ما مع C ++، فهي مثل مؤشرات الدالة. للمزيد من المعلومات عن المشاركين تحقق من هذه الصفحة MSDN .

نصائح أخرى

وPredicate هو نوع (بشكل أكثر تحديدا، وهو نوع مندوب) في مساحة الاسم System. انها ليست الكلمة.

إنه بالتأكيد في 3.0 ...انظر الجزء السفلي من صفحة MSDN تلك:

معلومات الإصدار

.الإطار الصافي

المدعومة في: 3.5, 3.0, 2.0

طالما أنك "تستخدم النظام" فيجب أن تراه.

تلك الصفحة على MSDN حوالي المسند (T) مندوب، والذي كما يلي:

<اقتباس فقرة>   

ويمثل الأسلوب الذي يعرف   مجموعة من المعايير ويحدد ما إذا كان   الكائن المحدد يستوفي تلك   المعايير.

المسند يكتب هناك في 3.5 وفي 4.0.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top