Feb
6
C# 3.0: Object Initializers
Filed Under Articoli, C# | Leave a Comment
Gli object initializers permettono di impostare le proprietà pubbliche di una classe con una sintassi molto semplice e veloce.
Supponiamo di avere una classa Cliente con queste proprietà pubbliche(ho utilizzato le automatic properties):
public string Nome { get; set; }
public string Cognome{ get; set;}
public string CodiceFiscale{ get; set;}
Feb
2
Questo è il primo di una serie di articoli dedicati al nuovo C# 3.0.
Iniziamo da un argomento leggero e facile, ma utile in certi contesti.
Il nuovo compilatore di C#, presente in Visual Studio 2008, introduce le Automatic Properties, ovvero una forma abbreviata delle proprietà.
Read more
Jan
30
Implicit e explicit operators
Filed Under Articoli, C# | Leave a Comment
Gli operatori implicit ed explicit sono stati introdotti con .NET 2.0.
Questi operatori servono per dichiarare un operatore di conversione di tipi.
Ecco subito un semplice esempio.
Abbiamo una struttura (di nome Struttura) che contiene un campo di tipo intero:
struct Struttura
{ public int Value; }
Struttura stru;
Se si volesse inizializzare la struttura (e quindi il suo unico campo Value) si deve scrivere così
stru.Value = 100;
Jan
26
Tipi nullable
Filed Under .NET Framework, Articoli, C# | 2 Comments
I tipi nullable sono stati introdotti nella versione 2.0 di .Net.
Questi tipi valori sono istanze della struttura Syste.Nullable<>, e rappresentano un tipo con tutti i valori di quello base, più un valore aggiuntivo null. Mi spiego meglio: prendiamo in considerazione, come esempio, il tipo bool:
System.Nullable<bool> var;
La variabile var, al contrario di una normale variabile bool che può assumere due valori (true o false), può assumere tre valori: true, false o null.
Jan
26
Monitorare lo stato delle connessioni
Filed Under .NET Framework, Articoli, C#, Networking | Leave a Comment
In alcuni casi potrebbe essere utile ottenere informazioni generiche, ma anche dettagliate, riguardo i vari stati di tutte le connessioni presenti sul nostro sistema in riferimento a più protocolli di rete.
Esistono diversi modi per raggiungere questo scopo ed uno dei più rapidi ci viene offerto dalla versione 2.0 del .NET Framework con la classe IPGlobalProperties (namespace System.Net.NetworkInformation), in particolare sfruttando il metodo statico GetIPGlobalProperties().
Jan
23
ApplicationContext e MainForm
Filed Under .NET Framework, Articoli, C#, Windows Forms | 4 Comments
Nei progetti VC# il thread principale del programma è legato alla Form principale per questo quando si chiude, la MainForm termina anche l’esecuzione del programma.
Questo comportamento è dovuto da questa riga di codice contenuta nel metodo Main:
Application.Run(new Form1());
Jan
21
Worker Thread
Filed Under .NET Framework, Articoli, C# | 3 Comments
Anche se in rete è possibile trovare diverse definizioni di oggetti che incapsulano il tipo nativo Thread di .NET, queste risultano spesso incomplete. Ecco perché ho deciso di svilupparne una custom per soddisfare le mie esigenze applicative.
Jan
20
Applicazione con singola istanza
Filed Under .NET Framework, Articoli, C# | Leave a Comment
Spesso può essere utile sviluppare applicazioni funzionanti su singola istanza. Questa è una funzionalità richiesta soprattutto dai programmatori VB che per ragioni di lavoro sono passati a C#. Infatti in VB.NET basta spuntare l’opzione “Make single istance application” nelle opzioni del progetto. Nei progetti in C# questa opzione non esiste, ma ciò non vuol dire che non si possa implementare via codice.In prima analisi si potrebbe pensare di eseguire, all’interno del Main, un controllo sui processi in esecuzione. La cosa sarebbe fattibilissima, basta utilizzare il metodo GetProcessByName della classe Process per ottenere i processi che portano il nome della nostra applicazione. I metodi GetProcess (GetProcessByName, GetProcessById) però, usano i performance counters. Pertanto non sono da usare così alla leggera perché possono avere un paio di problemi:
- I Performance Counter possono essere disabilitati e la classe Process, senza di questi, non funziona;
- I Performance Counter sono disponibili solo agli utenti admin della macchina.
Un’alternativa è quella di usare i Mutex. I Mutex sono una primitiva di sincronizzazione e sono molto facili da usare. Ecco quindi come diventa la classe program:

Feed degli articoli
Feed dei commenti
Forum














