Ricerca per argomento: .NET Framework
Una delle mancanze storiche del C# è stata la semplicità nel creare stringhe multilinea. Sebbene con la string interpolation o la concatenazione di stringhe o l'uso di StringBuilder questo processo non sia complicato, richiede una quantità di codice eccessiva. A partire dalla ...
C# 11 introduce la nuova parola chiave required che possiamo anteporre davanti a proprietà e campi di una classe per specificare che questi devono obbligatoriamente essere inizializzati da un costruttore o da un object initializer. Grazie a questa funzionalità, i campi ...
Quando serializziamo o deserializziamo un oggetto con la classe JsonSerializer di System.Text.Json, tra i vari parametri che possiamo passare ci sono le opzioni di serializzazione espresse tramite un'istanza della classe JsonSerializerOptions. Quando dobbiamo usare la classe ...
Quando invochiamo il metodo SaveChanges/SaveChangesAsync, EF Core genera i comandi SQL necessari ad aggiornare il database e, in caso di errore, solleva un'eccezione di tipo DbUpdateException che nella proprietà InnerException espone l'eccezione del provider ADO.NET. Tramite ...
Il metodo statico Convert.ChangeType permette di ottenere un oggetto di un determinato tipo partendo dal valore dell'oggetto di un altro tipo a patto che il valore sia convertibile e che il tipo sorgente implementi l'interfaccia IConvertible. Per fare un esempio, il metodo può ...
Uno dei pattern più comuni in C# è quello che prevede l'utilizzo del blocco using quando si istanzia un oggetto che implementa l'interfaccia IDisposable e lo si vuole distruggere una volta arrivati alla fine del blocco. A partire da C# 8, una classe può implementare l'interfaccia...
NET ha dichiarato guerra alle NullReferenceException già da diverso tempo grazie ai nullability check abilitati a livello di compilazione. Grazie a questi controlli fatti dal compilatore e all'aiuto del carattere speciale "?", possiamo scrivere codice che sia protetto da ...
A partire da .NET 6, abbiamo a disposizione quattro nuove interfacce che possono essere sfruttate per scrivere codice prima e dopo la serializzazione e la deserializzazione di un oggetto. Queste interfacce sono: IJsonOnDeserialized: dichiara il metodo OnDeserialized invocato dopo...
Nello script #582, abbiamo introdotto la classe DateOnly mostrando come questa lavori esclusivamente con le date. In questo script introduciamo la sua controparte: TimeOnly. Come è facilmente immaginabile dal nome, questa classe contiene esclusivamente i dati relativi a un orario...
Dal punto di vista della BCL, una delle novità più interessanti introdotte da .NET 6 è il tipo DateOnly. Questo è un tipo che permette di esprimere solamente una data senza l'orario come avviene per i tipi DateTime e DatetimeOffset. Il suo utilizzo è previsto in tutti quei casi ...