Domanda

  

Eventuali duplicati:
   C # equivalente per parola chiave di Visual Basic:? 'con' ... '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
È stato utile?

Soluzione

No, non esiste.

Anche se si potrebbe accorciare un po ':

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

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

per il vostro altro caso:

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

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

Questo dovrebbe Sono stato però ovvio;)

Altri suggerimenti

Per i nuovi casi è possibile utilizzare inizializzazione degli oggetti:

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

No, non c'è niente come il costrutto with in C #.

No . La soluzione è una (breve) nome della variabile locale invece che with. Aggiunge un paio di caratteri per riga, ma è ancora finire con riferimenti completi.

Siamo spiacenti, C # non ha questo. L'oggetto inizializzatore @Jakub suggerisce potrebbe fornire un'alternativa, o:

Se si progetta Zeta te stesso, è possibile utilizzare il fluente interfaccia modello di progettazione. Ciò permetterà di fare:

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

Il che si avvicina a ciò che si vuole, a scapito di un sacco di lavoro altrove. E ricordate che un'interfaccia fluida non è sempre la scelta migliore design.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top