Qual è la sintassi equivalente in C #, se del caso? [duplicare]
-
29-09-2019 - |
Domanda
Questa domanda ha già una risposta qui:
- Con blocco equivalente in C #? 15 risposte
La C # hanno alcun equivalente per VB6
With
End With
Soluzione
Non c'è niente di molto equivalente, ma C # 3 acquisito la capacità di proprietà impostate per la costruzione:
var person = new Person { Name = "Jon", Age = 34 };
e collezioni:
var people = new List<Person>
{
new Person { Name = "Jon" },
new Person { Name = "Holly"}
};
Non è sicuramente un sostituto per tutti usi di With
, ma vale la pena conoscere per alcuni di loro.
Altri suggerimenti
C # non ha alcuna sintassi equivalente. Il più vicino sono inizializzatori oggetto, ma non sono la stessa cosa:
var obj = new SomeThing {
Height = 100,
Text = "Hello, World",
ForeColor = System.Drawing.Color.Green
}
No.
Cosa si avvicina sono oggetti e lista inizializzatori .
Person p = new Person()
{
FirstName = "John",
LastName = "Doe",
Address = new Address()
{
Street = "1234 St.",
City = "Seattle"
}
};
E non è affatto un equivalente, tuttavia, se è la digitazione si sta cercando di ridurre, si può fare.
{
var o = myReallyReallyReallyReallyLongObjectName;
o.Property1 = 1;
o.Property2 = 2;
o.Property3 = 3;
}
Non c'è C # equivalenti a With
parola chiave di Visual Basic.
Non v'è alcun equivalente in c # -> Per saperne di più qui nei commenti http://blogs.msdn.com/b/csharpfaq/archive/2004/03/11/why-doesn-tc-have- vb-net-s-with-operator.aspx
Un quasi equivalente sarebbe chiamare un metodo che è un membro di una classe. Non è necessario dare un nome più volte l'oggetto che possiede dentro i membri della classe - è implicita nel fatto che la funzione è un membro, chiamato per una determinata istanza.
dubito un equivalente diretto di Con / End With è una buona idea in C # per questo motivo. Se ti sei trovato a digitare il nome di un oggetto più e più volte in un determinato ambito, è un'indicazione buona che il codice in questione sarebbe un buon metodo sulla classe dell'oggetto.
Non v'è alcun equivalente diretto. È possibile impostare le proprietà per la costruzione, come altri hanno spiegato, oppure è possibile assegnare la vostra espressione ad una variabile con un nome breve. Il seguente dovrebbe essere semanticamente equivalente:
With <expression>
.something ...
.somethingElse ...
End With
var w = <expression>;
w.something ...
w.somethingElse ...