ciao,
sì, ho aggiunto quei nuovi elementi per rendere la classe Persona un po' più vicina ad un caso reale.
cricchi ha scritto:
public Persona() : this("NomeSconosciuto", 18) { }
Questa è semplicemente la dichiarazione di un costruttore senza parametri che, quando viene invocato, richiama l'altro costruttore, quello con due parametri.
Il
this identifica l'istanza corrente di Persona, quindi quella riga significa letteralmente:
"Quando si usa il costruttore Persona(), cerca in questa stessa istanzail costruttore con due parametri, e invocalo passando i valori
NomeSconosciuto e
18."
In pratica, quando fai new Persona(), il runtime invocherà l'altro costruttore come se tu stesso avessi scritto new Persona("NomeSconosciuto", 18).
Il vantaggio di usare questo sistema è che non sei costretto a ripetere la logica nei due costruttori, fosse anche una banale assegnazione di variabili.
Ricorda che se ti trovi nella situazione di dover copiare-incollare lo stesso codice in due punti diversi, probabilmente esiste una soluzione più elegante al problema. In questo caso, "più elegante" significa anche più manutenibile, perché hai meno codice da gestire.
cricchi ha scritto:
Fino ad ora sapevo che tutto quello che veniva inserito tra virgolette dentro al Console.WriteLine veniva visualizzato a schermo
Certamente, ma le stringhe possono essere trasformate da varie funzioni, come per esempio
Replace, che sostituisce un pezzo di stringa in un altro.
var frase = "Il mio colore preferito è il blu";
frase = frase.Replace("blu", "verde");
Qui ho usato il Replace per modificare una stringa definita nella prima istruzione. Dopo queste due righe di codice, la variabile
frase punterà alla stringa "Il mio colore preferito è il
verde".
Nell'esempio che ti ho portato, quello con i segnaposto {0} e {1}, succede più o meno la stessa cosa. Essi vengono rimpiazzati dagli altri due argomenti che ho fornito a string.Format, ovvero NomeCompleto ed Età.
cricchi ha scritto:
Pensavo valesse la stessa regola sia per il console.writeline
Il Console.WriteLine mostrerà a video quello che gli arriva, né più né meno. Non esistono regole speciali che ne modificano il comportamento.
Quindi mostrerà il risultato che lo String.Format gli ha restituito, ovvero quella stringa in cui i segnaposto {0} e {1} sono ormai stati sostituiti.
ciao,
Moreno
Modificato da BrightSoul il 07 settembre 2014 09.31 -