introduction to c#
TRANSCRIPT
Creare app native su iOS, Android, Mac & Windows in C#
Introduzione a C#
Gli speaker di oggi
Guido MagrinXamarin & Microsoft Student Partner
Xamarin Certified Developer
@GuidoMagrin
Dove trovo le slide?
http://www.slideshare.net/guidomagrin
Gli Xamarin Student Partner
https://www.facebook.com/XSAMilano
Cosa impareremo oggi?
• Fondamenti di C#• Branching & Looping• Programmazione ad oggetti• Behaviors• Debugging ed Exceptions
Chi ha giàsentito parlaredi C#?
Breve storia di C#C# si è evoluto a partire da linguaggi come C, C++ e Java.
Xamarin StudioPC o Mac
Plugin Visual Studio VS 2010 e
superiore
Ambienti di Sviluppo
Fondamentidi C#
Statements
Commenti
Tipi
Tipi e Variabili
Tipi predefiniti
Tipi numerici
Valori booleani
Lavorare con le stringhe
Concatenazione di Stringhe
Lavorare con caratteri singoli
Lavorare con le variabili
Stampare variabili tramite Console
Output complesso a Console
Sicurezza sui Tipi
Come nominare una variabile?
Branching &Looping
Scegliere tra due alternative, If
“Switch”
“While”
“For”
Programmazionead oggetti
Cos’è la programmazione ad oggetti?
In informatica la programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi
Definizione di nuovi tipi
L’idea base della programmazione ad oggetti è che il programmatore possa creare nuovi tipi
Cos’è una classe?
La classe è un costrutto di un linguaggio di programmazione usato come modello per creare oggetti
Cosa c’è in una classe?
Una classe contiene fields e metodi
Cos’è un field?
Un field è una variabile posseduta dalla classe che contiene il dato
Cos’è un metodo?
I metodi sono blocchi di codice, contenenti istruzioni C#, che “lavorano” con i field della classe
Come identificare le classi che mi servono?
Quali sono le classi che potenzialmente ci servirebbero per descrivere un’app di routing?
Le classi sono modelli di cose nel mondo reale; possiamo spesso identificare quali classi usare esaminando cosa l’app deve fare.
Come identificare le classi che mi servono?
• Mappa• Posizione corrente• Percorso• Strada
Le classi sono modelli di cose nel mondo reale; possiamo spesso identificare quali classi usare esaminando cosa l’app deve fare.
Cos’è un object?
Una classe definisce un template. Gli objects sono istanze di quel template.
Come definisco una classe?
Una classe C# ha un nome e un body. Il body è limitato da { e }
Ogni classe dovrebbe essere definita nel suo file (BankAccount.cs)
Innestamento di classi
Classi pubbliche VS Classi private
Bisogna prestare attenzione al livello di accessibilità che si vuole garantire ad ogni singolo campo e metodo:
• Le altre classi hanno bisogno di accedere a questo campo, o è solamente utile allo svolgimento di operazioni interne alla classe?
• Le altre classi possono trarre vantaggio dall’accedere a questo metodo?
Come creare objects?
Ogni oggetto possiede i propri field in maniera univoca
Come accedo ai fields di un object?
Uso l’operatore “punto” per accedere (leggere o modificare) i fields di un object
Behaviors
Come definisco un metodo?
Un metodo è dichiarato all’interno di una classe con un nome univoco che indica di cosa si occupa il metodo
Come accedo ad un metodo?
Devo usare l’operatore “punto” e le parentesi
Passaggio di parametri a un metodo
I parametri di un metodo sono «pezzi aggiuntivi di informazioni» passati al metodo dal chiamante.
Validazione di parametri
I parametri passati DEVONO essere del tipo richiesto dal metodo
Passaggio di parametri multipli
I parametri passati ad una classe possono essere anche di tipi differenti
Ritorno di valori da un metodo
Per ogni metodo deve essere definito il tipo ritornato. Nel caso non ritorni nulla, si usa la keyword «void»
Overloading di un metodo
Talvolta un metodo può avere metodi con lo stesso nome ma che, a seconda dei parametri passati, adempiono a funzioni differenti
Cos’è una property?
Una property C# consente un accesso regolato ad un determinato field
Debugging edExceptions
Diverse tipologie di bug
Usare breakpoint per interrompere il programma
I breakpoint servono a interrompere l’esecuzione del programma in un punto specifico
Modificare le condizioni di un breakpoint
Cos’è una exception?
Un’exception serve a gestire una condizione imprevista, durante l’esecuzione del programma
A cosa ci serve un’exception?
A cosa ci serve un’exception?
Un’exception non gestita, solitamente, causa un crash nel programma
Catturare un’exception
Le exception devono essere catturate in maniera da gestire il caso
Catturare un’exception
Le exception devono essere catturate in maniera da gestire il caso
Catturare differenti tipologie di exception
E’ possibile specificare diversi catch, a seconda dell’eccezione che si intende catturare
Lanciare un’exception
E’ possibile generare manualmente un’exception per descrivere un problema che causerebbe l’interruzione dell’esecuzione di un metodo
Altro su C#
LINQ, Eventi & Delegati
Supporto a LINQ
Gestione di Eventi & Delegati
Json.NET permette di lavorare agevolmente con stringhe in formato JSON e oggetti .NET, grazie ai metodi SerializeObject e DeserializeObject
Lavorare con i JSON
C# con XamarinObjective-C
Differenze tra Obj-C e Xamarin C# – Classi e Metodi
C# con Xamarin
Objective-C
Semplificazione offerta da Async/Await
C# con XamarinJava
C# & Async con Xamarin
Click di oggetti – Android ItemClick