سؤال

أحاول الحصول على رأسي حول Predicate<T> اكتب وأستطيع أن أفهمها عندما يكون أي شيء، باستثناء BOOL. اذا كنت تمتلك Predicate<bool>, ، أنا لا أرى كيف يمكن استخدامها.

هل يمكن لأي شخص أن يقول لي إن هذا شيء سخيف للقيام به أو إذا كان يعمل بالفعل غرضا؟

Predicate<T> بالفعل إرجاع bool، لذلك ثم اختبار حالة على bool يبدو بلا معنى قليلا ... أو هل حصلت عليه خطأ؟

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

المحلول

المسند يعني وظيفة تأخذ T (أي نوع) وإرجاع BOOL.

Predicate<int> isEven = i => i % 2 == 0;

أنت في الغالب على حق. بالنسبة إلى BOOL، لا يوجد الكثير من الاستخدامات التي تعود إلى الذهن. أعني، لا يوجد سوى الكثير يمكنك القيام به مع bool.

Predicate<bool> isFalse = input => !input;
Predicate<bool> isTrue = input => input;

قد تستخدمه مثل هذا:

var listOfBools = new List<Bool>() { true, false, false, true, true };
var trues = listOfBools.FindAll(isTrue);
var falses = listOfBools.FindAll(isFalse);

إنها بالتأكيد أقل فائدة، ببساطة لأن هناك الكثير من الأشياء التي يمكنك القيام بها مع BOOL.

نصائح أخرى

حسنا، لمجرد أن لديك BOOL بالفعل لا يعني أنك تريد العودة إلى أن BOOL بالضبط. على سبيل المثال، يمكنني أن أتصور المسند isfalse الذي يعود صحيحا إذا كانت الوسيطة خاطئة.

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