سؤال

التكرارات الممكنة:
فوائد استخدام المشغل الشرطي ؟: (الثلاثية) المشغل
هل المشغل الشرطي بطيء؟

أهلاً بكم،

لدي سؤال بسيط للغاية فيما يتعلق بالبيانات المختلفة إذا/آخر.

بصرف النظر عن كتابة كود أقل ، هل هناك أي فوائد أخرى لاستخدام المشغل الشرطي بدلاً من البيان الكامل إذا/آخر؟

هل هناك زيادة في الأداء أو رمز أقل تجميعًا أو أي شيء آخر من شأنه أن يفيدني عند استخدامه؟

نقدر مساعدتكم

ماركو

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

المحلول

لا تركز على جاري الكتابة كود أقل ... ركز على الرمز الذي ينتهي بك الأمر إلى أن تكون أكثر قابلة للقراءة.

في بعض الأحيان if البيان سيكون أكثر قابلية للقراءة. في بعض الأحيان يكون المشغل الشرطي أكثر قابلية للقراءة. يعجبني المشغل المشروط في الحالات التي يكون فيها منطقيًا ، من حيث الطرق المختلفة لحساب قيمة منطقية واحدة (على سبيل المثال خصم ، بناءً على عمر العميل). لا أحب استخدامه بطرق معقدة - لا حرج في استخدام كامل إذا/آخر حيث يكون من المنطقي.

تجدر الإشارة إلى أن المشغل الفارغ في الفرق أيضًا ... بدلاً من:

string shipTo = customer.ShippingAddress != null 
              ? customer.ShippingAddress : customer.BillingAddress;

يمكنك استخدام

string shipTo = customer.ShippingAddress ?? customer.BillingAddress;

مرة أخرى ، إنه مفيد فقط في مواقف معينة - ولكن في تلك الحالات يكون ذلك مفيدًا حقًا.

نصائح أخرى

بصرف النظر عن كتابة كود أقل ، هل هناك أي فوائد أخرى لاستخدام المشغل الثلاثية بدلاً من البيان الكامل إذا/آخر؟

أفضل قابلية للقراءة ، في بعض الحالات ... أعتقد أن هذا كل شيء.

هل هناك زيادة في الأداء أو رمز أقل تجميعًا أو أي شيء آخر من شأنه أن يفيدني عند استخدامه؟

لا ، لا شيء مهم. أعتقد أنه عادة ما يتم تجميعه إلى نفس IL على أي حال ...

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

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