سؤال

وأستخدمه Global.asax لأداء قطع الأشجار في نهاية كل طلب عن طريق الحدث Application_EndRequest. ومع ذلك، أرى بعض السلوك الغريب لبعض القيم المخزنة في جمع HTTPContext.Current.Items.

وفيما يلي إخراج التصحيح لالتعداد قيم الفارغة. يمكنك أن ترى أن هناك قيمة، ولكن HasValue العزم على باطل؟!

{System.Nullable(Of AreaNameEnum)}
    HasValue: False
    hasValue: False
    Value: {System.InvalidOperationException}
    value: ADMIN {0}

وأنا على التخمين بأن فوات الأوان في طلب دورة الحياة للوصول إلى HTTPContext.Current - ولكن يبدو أن العمل أحيانا وأحيانا لا. يمكن لأي شخص أن يلقي أي ضوء أكثر على بالضبط ما الذي يجري؟

والشكر

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

المحلول

وقيم الفارغة هو الهيكل الذي يحتوي على hasValue منطقية وقيمة T حيث T هو نوع القيمة. في هذه الحالة على التعداد. والتعداد لا بد أن يكون بعض القيمة في هذه الحالة الافتراضية 0، إلا أن القيمة العامة رميات استثناء لأن hasValue هو زائف.

وما تراه هو الأجزاء الداخلية من كيف قيم الفارغة ما تقوم به. لا يمكنك قراءة أي شيء في حقل القيمة الداخلية وجود أي قيمة عند hasValue هو زائف. سيكون على كل حال إذا يمكن أن تحتوي على قيمة باطل لا يكون هناك أي نقطة في استخدام قيم الفارغة هنا.

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