Coding

Come sapere se un numero è pandigitale

Con questo post inauguro una serie di post sulla risoluzione di problemi algoritmici che vengono spesso richiesti durante le interview.Il primo problema che affronto è scrivere un algoritmo per sapere se un numero è pandigitale che un numero che contiene tutte le cifre da 0

pattern factory

Pattern Factory

Introduzione Il Factory Method è uno dei design pattern fondamentali per l’implementazione del concetto di factories. Come altri pattern creazionali, esso indirizza il problema della creazione di oggetti senza specificarne l’esatta classe.L’idea è utilizzare un metodo factory che ritorna una interfaccia dell’oggetto che voglio creare

Pattern Prototype

Introduzione Il design pattern prototype è uno dei pattern creazionali fondamentali introdotti dalla Gang of Four e permette di creare nuovi oggetti clonando un oggetto iniziale, detto appunto prototipo.A differenza di altri pattern come Abstract factory o Factory permette di specificare nuovi oggetti a tempo

casting

Casting in C#

Il cast (in particolare il downcasting) permette di esplicitare il tipo di una variabile a quello di una classe figlia o sotto-figlia. Il classico esempio è castare una variabile di tipo object al suo tipo effettivo. Il cast è una operazione comunissima che viene effettuata

semaphoreslim

SemaphoreSlim 101

SemaphoreSlim è una classe che permette la sincronizzazione di n thread che hanno una risorsa (scarsa) condivisa limitandone l’uso ad un numero massimo.

interlocked

Interlocked 101

La sincronizzazione dei thread è un elemento fondamentale nella programmazione asincrona, ne ho infatti parlato in vari post. La soluzione più versatile è sicuramente utilizzare il costrutto lock ma, in alcuni casi, l’utilizzo dei metodi della classe Interlocked permette di ottenere performance decisamente migliori. Questa

Come testare gli eventi

Testare che degli eventi siano stato effettivamente lanciati in C# non è immediato. Tipicamente è possibile testare che un evento venga lanciato aspettando un ManualResetEvent che viene settato in un listener dell’evento stesso. Questo metodo funziona ma risulta un po’ macchinoso; Fluent Assertion risolve il

Perché non dovresti usare MD5

Introduzione Le funzioni di hash permettono di ottenere una sequenza di bit tramite l’utilizzo di funzioni matematiche in base ai dati in ingresso; la loro caratteristica fondamentale è che a partire dal loro output è impossibile risalire agli input. Ne ho già parlato nell’articolo sul

Quanto sono veloci le reflection?

La reflection permette al codice di poter istanziare classi o chiamare metodi privati senza passare per la classe stessa; capire quanto queste siano veloci permette di scrivere codice più performante. E’ possibile utilizzare le reflection per creare una istanza di un oggetto di un determinato

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)