سؤال

تكرار ممكن:
C# ما يعادل الكلمة الأساسية Visual Basic: "مع" ... "نهاية مع"؟

VB.NET

With Alpha.Beta.Gama.Eta.Zeta
    a = .ZetaPropertyA
    b = .ZetaPropertyB
    c = .ZetaPropertyC
End With

ج#؟

a = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyA
b = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyB  
c = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyC
هل كانت مفيدة؟

المحلول

كلا ، غير موجود.

على الرغم من أنه يمكنك تقصيره قليلاً:

var z = Alpha.Beta.Gama.Eta.Zeta;

z.ZetaPropertyA = a;
z.ZetaPropertyB = b; 
z.ZetaPropertyC = c;

لحالتك الأخرى:

var z = Alpha.Beta.Gama.Eta.Zeta;

a = z.ZetaPropertyA;
b = z.ZetaPropertyB;
c = z.ZetaPropertyC;

كان ينبغي أن يكون واضحا رغم ذلك)

نصائح أخرى

للحصول على مثيلات جديدة يمكنك استخدام تهيئة الكائن:

Alpa.Beta.Gama.Eta = new Zeta
{
    ZetaPropertyA = a, 
    ZetaPropertyB = b,
    ZetaPropertyC = c
}

لا ، لا يوجد شيء مثل with بناء في ج#.

لا. الحل البديل هو اسم متغير محلي (قصير) بدلاً من with. يضيف بضعة أحرف لكل سطر ، لكن لا يزال ينتهي بك الأمر إلى مراجع مؤهلة تمامًا.

آسف ، ج# ليس لديه ذلك. قد يقترح jokub just jakub بديلاً ، أو:

إذا قمت بتصميم Zeta نفسك ، يمكنك استخدام واجهة بطلاقة نمط التصميم. من شأنه أن يسمح لك بالقيام:

Alpha.Beta.Gama.Eta.Zeta
    .SetPropertyA(A)
    .SetPropertyB(B)
    .SetPropertyC(C);

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

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