Nello script #391 abbiamo visto come inizializzare il valore di una proprietà sfruttando la nuova sintassi di C# 6. Nello script, la proprietà era sia in lettura che scrittura e il suo valore era impostato con un valore statico. A volte queste condizioni non possono essere soddisfatte, perchè la proprietà deve essere in sola lettura e il valore da assegnare deve essere calcolato a run time. C# 6 permette di impostare a runtime il valore di una proprietà in sola lettura a patto che il valore sia impostato nel costruttore come mostrato nell'esempio.
public class Person
{
public string FullName { get; }
public Person(string firstName, string lastName)
{
FullName = $"{firstName} {lastName}";
}
}Fino a C# 5 un risultato simile era ottenibile usando o campi readonly o proprietà con setter privato. Nel primo caso il problema consiste nel fatto che i campi readonly non possono essere messi in binding, mentre nel secondo caso il problema è che avere un setter permette di modificare la proprietà e questo non dovrebbe essere possibile dopo l'inizializzazione. Con C# 6 questi problemi sono superati.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Analizzare il contenuto di una issue con GitHub Models e AI
Combinare Container Queries e Media Queries
Definire il metodo di rilascio in .NET Aspire
Definire il colore di una scrollbar HTML tramite CSS
Integrare SQL Server in un progetto .NET Aspire
Utilizzare l nesting nativo dei CSS
.NET Aspire per applicazioni distribuite
Utilizzare Containers in .NET Aspire
Configuratione e utilizzo .NET Aspire CLI
Fissare una versione dell'agent nelle pipeline di Azure DevOps
I più letti di oggi
- Inserire le news di Punto Informatico nel proprio sito
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR


