سلوك غريب من أنواع التعداد قيم الفارغة
-
21-08-2019 - |
سؤال
وأستخدمه 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 هو زائف. سيكون على كل حال إذا يمكن أن تحتوي على قيمة باطل لا يكون هناك أي نقطة في استخدام قيم الفارغة هنا.