سؤال
وإذا كان لدي "عشري؟ د" قيم الفارغة وأريد أن تعيين د بعدم ه قيم الفارغة، ما هي الطريقة الصحيحة؟
المحلول
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
أنها كذلك.
لا تنتمي إلى StackOverflow