Ricerca avanzata
Ricerca per argomento: .NET Framework
Molto spesso capita di avere attributi di cui dobbiamo impostare una proprietà di tipo Type. A partire dalla versione 11, C# permette di creare attributi che accettano un parametro generico sostituendo la proprietà di tipo Type. public class GenericAttribute : Attribute { }public...
Una delle novità di C# 11 consiste nella possibilità di creare tipi visibili solo all'interno del file in cui sono stati dichiarati grazie alla nuova parola chiave file. Supponiamo di avere una classe MyClass all'interno del file File1.cs. Ad un certo punto, dobbiamo creare un'...
Da quando è stato introdotto in C#, il pattern matching ha cambiato il modo di scrivere alcuni parti del codice basate sulla programmazione condizionale. Quest'affermazione è particolarmente vera in presenza di un'istruzione switch, ma quello che è meno noto è che possiamo ...
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 ...