C#
Effettuare un lavoro periodico con la classe Timer del C#
1 giu
La classe System.Timers.Timer consente di eseguire, periodicamente, un metodo scelto.
Il suo utilizzo è abbastanza semplice:
using System; using System.Timers; namespace test { class MainClass { private static int toDelete = 0; public static void Main (string[] args) { Console.WriteLine( ">> Esempio Timer << " + "[premi un tasto per terminare]"); Timer timer = new Timer(); timer.Interval = 1000.0; timer.Elapsed += new ElapsedEventHandler(TimerEvent); timer.Enabled = true; Console.Read(); timer.Enabled = false; Console.WriteLine("\nFine"); } public static void TimerEvent(Object sender, ElapsedEventArgs e) { String timestamp = e.SignalTime.ToString(); for(int i=0; i < toDelete; i++) { Console.Write("\b"); } toDelete = timestamp.Length; Console.Write(timestamp); } } }
La classe Dictionary di C#
29 mag
La classe Dictionary, contenuta nel namespace System.Collections.Generic, rappresenta una collezione di chiavi-valori.
Essendo implementata come una tabella hash, ottenere un valore a partire da una chiave ha complessità vicina O(1) (dipende comunque anche dalla qualità dell’algoritmo di hash definito per il tipo chiave).
Dictionary una classe generica, ed è dunque necessario specificare la classe della chiave e quella del valore:
using System; using System.Collections.Generic; namespace test { class MainClass { public static void Main (string[] args) { Dictionary<String, String> dict = new Dictionary<String, String>(); } } }
C#: la parola chiave “is”
28 mag
La keyword is consente di sapere, a runtime, se un oggetto è compatibile con un tipo specificato.
Essa restituisce
C#: le proprietà
26 mag
In C#, le proprietà sono membri che forniscono un meccanismo semplificato di lettura e scrittura dei campi di una classe.
Solitamente si utilizzano le proprietà per accedere ai campi privati (anche se possono essere utilizzati anche per campi pubblici), al posto dei metodi setter/getter (il tipico approccio di Java).
L’istruzione “using” del C#
24 mag
L’istruzione using del C# è utilizzata per definire un ambito all’esterno del quale uno o più oggetti verranno eleminati.
L’oggetto fornito all’istruzione using deve necessariamente implementare l’interfaccia System.IDisposable (e, di conseguenza, il metodo Dispose, che rilascerà le risorse).
Si esce dall’ambito definito da using quando termina il blocco o in presenza di un’eccezione.
I parametri di metodo in C#
13 apr
In C#, per i parametri dichiarati di un metodo, il normale comportamento consiste nella possibilità di passargli un valore, che potrà essere modificato all’interno del metodo in questione. Tuttavia le modifiche apportate al valore del parametro rimarrano locali al metodo cioè non avranno effetto all’interno della routine chiamante.
Multithreading in C#
3 apr
Il .NET framework permette di sviluppare applicazioni multithreading utilizzando le classi incluse nel namespace System.Threading.
Più precisamente, un thread è modellato come un oggetto di classe Thread.
In seguito, istanzieremo un oggetto Thread utilizzando il costruttore:
public Thread( ThreadStart start )
dove ThreadStart rappresenta il metodo da far eseguire al thread.
L’algoritmo di ricerca binaria
30 mar
La ricerca binaria, o dicotomica, è una particolare ricerca, effettuabile su insiemi ordinati, particolarmente efficiente.
Il suo costo computazionale è $latex O(1) $ nel caso ottimo, $latex O(log n) $ nel caso pessimo.
Fibonacci iterativo in C#
20 mar
La seguente implementazione iterativa dell’algoritmo di Fibonacci sfrutta lo statement yield e l’interfaccia IEnumerable, definita nel namespace System.Collections.Generic, per generare i primi n numeri della serie di Fibonacci:
Distanza euclidea bi-dimensionale
19 mar
La distanza tra due punti $latex P = (x_{1}, y_{1}) $, $latex Q = (x_{2}, y_{2}) $ è calcolabile, utilizzando il teorema di Pitagora, mediante la formula:
[latex] \sqrt{ (x_{1} – x_{2})^{2} + (y_{1} – y_{2})^{2} } [/latex]