# Utilizzo di stream Un flusso è un oggetto che fornisce un mezzo di basso livello per trasferire i dati. Essi stessi non fungono da contenitori di dati. I dati di cui ci occupiamo sono sotto forma di array di byte(byte [] ). Le funzioni di lettura e scrittura sono tutte orientate ai byte, ad es.
LEGGERE# Selezionato e Deselezionato Le istruzioni C# vengono eseguite in un contesto selezionato o deselezionato. In un contesto controllato, loverflow aritmetico genera uneccezione. In un contesto non controllato, loverflow aritmetico viene ignorato e il risultato viene troncato. short m = 32767; sho
LEGGERE# Un semplice indicizzatore class Foo { private string[] cities = new[] { "Paris", "London", "Berlin" }; public string this[int index] { get { return cities[index]; } set { cities[index] = value; }
LEGGERE# classe System.String In C# (e .NET) una stringa è rappresentata dalla classe System.String. Il string parola chiave è un alias per questa classe. La classe System.String è immutabile, ovvero una volta creata il suo stato non può essere modificato. Quindi tutte le operazioni che esegui su una st
LEGGERE# Tipi di polimorfismo Il polimorfismo significa che unoperazione può essere applicata anche a valori di altri tipi. Esistono diversi tipi di polimorfismo: **Polimorfismo ad hoc:** contiene `sovraccarico di funzioni`. Lobiettivo è che un Metodo possa essere utilizzato con diversi tipi senza la ne
LEGGERE# Filtri di azioni personalizzate Scriviamo filtri di azione personalizzati per vari motivi. Potremmo avere un filtro di azione personalizzato per la registrazione o per salvare i dati nel database prima dellesecuzione di qualsiasi azione. Potremmo anche averne uno per recuperare i dati dal databas
LEGGEREUsando i socket asincroni, un server può ascoltare le connessioni in entrata e fare qualche altra logica nel frattempo in contrasto con i socket sincroni quando sono in ascolto, bloccano il thread principale e lapplicazione non risponde e si blocca fino a quando un client non si connette. # Esempio
LEGGEREAccesso al file di condivisione di rete tramite PInvoke. # Codice per accedere al file condiviso in rete public class NetworkConnection : IDisposable { string _networkName; public NetworkConnection(string networkName, NetworkCredential credentials) {
LEGGERE# Creazione e invio di una richiesta HTTP POST using System.Net; using System.IO; ... string requestUrl = "https://www.example.com/submit.html"; HttpWebRequest request = HttpWebRequest.CreateHttp(requestUrl); request.Method = "POST"; // Optionally, set properties of the HttpWe
LEGGERE# Client di comunicazione TCP di base Questo esempio di codice crea un client TCP, invia Hello World sulla connessione socket e quindi scrive la risposta del server sulla console prima di chiudere la connessione. // Declare Variables string host = "stackoverflow.com"; int port = 9999; int
LEGGERE# Dichiarazione di un tipo di delegato La seguente sintassi crea un delegate digita con nome NumberInOutDelegate , che rappresenta un metodo che accetta un int e restituisce un int . public delegate int NumberInOutDelegate(int input); Questo può essere utilizzato come segue: public static class
LEGGERE# Creazione di un attributo personalizzato //1) All attributes should be inherited from System.Attribute //2) You can customize your attribute usage (e.g. place restrictions) by using System.AttributeUsage Attribute //3) You can use this attribute only via reflection in the way it is supposed to be
LEGGERE# Espressioni condizionali Quando viene compilato quanto segue, restituirà un valore diverso a seconda delle direttive definite. // Compile with /d:A or /d:B to see the difference string SomeFunction() { #if A return "A"; #elif B return "B"; #else return "C&quo
LEGGERE# Aggiungi elemento allelenco BindingList<string> listOfUIItems = new BindingList<string>(); listOfUIItems.Add("Alice"); listOfUIItems.Add("Bob"); # Come evitare N*2 iterazioni Questo viene inserito in un gestore eventi Windows Forms var nameList = new BindingList&
LEGGERE# Esempio di sovraccarico di base Questo codice contiene un metodo di overload denominato Hello : class Example { public static void Hello(int arg) { Console.WriteLine("int"); } public static void Hello(double arg) { Console.WriteLine("double&quo
LEGGERE# Crea alberi delle espressioni con unespressione lambda Di seguito è riportato lalbero delle espressioni più semplice creato da lambda. Expression<Func<int, bool>> lambda = num => num == 42; Per creare alberi delle espressioni a mano, si dovrebbe usare Expression classe. Lespres
LEGGEREUn evento è una notifica che qualcosa si è verificato (come un clic del mouse) o, in alcuni casi, sta per verificarsi (come una variazione di prezzo). Le classi possono definire eventi e le loro istanze (oggetti) possono generare questi eventi. Ad esempio, un pulsante può contenere un evento Click
LEGGERE# Implementazione di INotifyPropertyChanged in C# 6 Limplementazione di INotifyPropertyChange può essere soggetto a errori, poiché linterfaccia richiede di specificare il nome della proprietà come stringa. Per rendere limplementazione più robusta, un attributo CallerMemberName può essere utilizzato
LEGGERE# C# 6.0:inizializza una proprietà implementata automaticamente Crea una proprietà con getter e/o setter e inizializza tutto in una riga: public string Foobar { get; set; } = "xyz"; # Inizializzazione della proprietà con un campo di supporto public string Foobar { get { return _foo
LEGGERE# proprietà implementate automaticamente Le proprietà implementate automaticamente sono state introdotte in C# 3. Una proprietà implementata automaticamente viene dichiarata con un getter e un setter (accessori) vuoti: public bool IsValid { get; set; } Quando una proprietà implementata automati
LEGGERE