Tout visuelle analogique de base « avec » en C #? [dupliquer]
-
26-09-2019 - |
Question
Possible en double: C # équivalent pour le mot clé Visual Basic: 'Avec' ... 'End With'
VB.NET
With Alpha.Beta.Gama.Eta.Zeta
a = .ZetaPropertyA
b = .ZetaPropertyB
c = .ZetaPropertyC
End With
C #?
a = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyA
b = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyB
c = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyC
La solution
Nope, n'existe pas.
Bien que vous pouvez raccourcir un peu:
var z = Alpha.Beta.Gama.Eta.Zeta;
z.ZetaPropertyA = a;
z.ZetaPropertyB = b;
z.ZetaPropertyC = c;
pour votre autre cas:
var z = Alpha.Beta.Gama.Eta.Zeta;
a = z.ZetaPropertyA;
b = z.ZetaPropertyB;
c = z.ZetaPropertyC;
Cela aurait dû être évident si;)
Autres conseils
Pour les nouveaux cas, vous pouvez utiliser l'objet initialiseur:
Alpa.Beta.Gama.Eta = new Zeta
{
ZetaPropertyA = a,
ZetaPropertyB = b,
ZetaPropertyC = c
}
Non, il n'y a rien comme la construction de with
en C #.
Désolé, C # ne pas. L'objet initialiseur @Jakub suggère pourrait fournir une alternative, ou:
Si vous concevez Zeta
vous, vous pouvez utiliser le interface fluide modèle de conception. Cela vous permettra de le faire:
Alpha.Beta.Gama.Eta.Zeta
.SetPropertyA(A)
.SetPropertyB(B)
.SetPropertyC(C);
Ce qui se rapproche de ce que vous voulez, au détriment de beaucoup d'ailleurs de travail. Et rappelez-vous qu'une interface fluide est pas toujours le meilleur choix de design.