سؤال

وإذا كان لدي "عشري؟ د" قيم الفارغة وأريد أن تعيين د بعدم ه قيم الفارغة، ما هي الطريقة الصحيحة؟

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

المحلول

decimal e = d ?? 0.0;

نصائح أخرى

decimal e;
if(d.HasValue) 
{
    e = d.Value;
}

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

if (d.HasValue) { e = d.Value; } else { /* now what */ }

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

d = foo ? 45 : (int?)null;

ملاحظة حالة اغية إلى (الباحث؟) بحيث أن كلا فروع لها نفس النوع.

decimal e;

if (d.HasValue)
{
    e = d.Value;
}

وأنا عادة ما يذهب بشيء من هذا القبيل:

decimal e = d.HasValue ? d.Value : decimal.Zero;

والسبب هنا هو أن أنا معجب العمليات الثلاثي وأنا عادة تعيين قيمة وأود أن تحصل إذا كنت قد perfermed على TryParse() فشل لنوع أتعامل معها. لdecimal التي سيتم decimal.Zero، لint سيتم 0 أنها كذلك.

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