Imparare C#Principianti

La Sintassi e i NameSpace

Uno sguardo allo schema di colori del tuo MonoDevelop

using UnityEngine; //Aggiungo il nameSpace UnityEngine

public class Evviva : MonoBehaviour { //Apro la classe Evviva
{
static void Messaggio() //Apro il metodo Messaggio
{
Debug.Log("Evviva il C# e Unity!"); //Chiamo la classe Debug e utilizzo il metodo log
} //Chiudo il medodo Messaggio
} //Chiudo la classe Evviva


/* questo è un
commento su più righe */

Cosa sono tutte quelle scritte verdi? Semplici commenti. :mrgreen:
Se usate Monodevelop saranno visualizzati di colore grigio  e in formato italico, ma non cambia nulla.
Lo schema dei colori del Monodevelop si può facilmente cambiare dal menu Tools==> options –> Text Editor –> Syntax Highlighting. Cosa che consiglio vivamente di fare.

Per semplicità e per rimarcare le differenze tra i vari elementi sarebbe più opportuno modificare il sistema di colori del vostro Monodevelop ed impostarlo su Visual Studio oppure scegliere uno schema di colori con uno sfondo scuro, così da non affaticare troppo gli occhi in caso di lunghe sessioni di programmazione.
Come detto il Monodevelop è diventato obsoleto dalla versione 2018.1 di Unity e al suo posto viene fornito il Visual Studio Community, che è di gran lunga migliore.

 

I commenti

I commenti su una sola riga si scrivono semplicemente ponendo un doppio slash prima del testo // .
Per scrivere commenti su più righe dovremmo aprire il commento con questo simbolo /* per poi richiuderlo con questo */ oppure ovviamente, mettere i doppi slash ad ogni riga.

Il “testo commentato” non verrà preso in considerazione dalla compilazione e servirà solo d’aiuto a noi stessi e ad eventuali lettori del codice per identificare le istruzioni che abbiamo scritto. E’ buona norma fare largo uso dei commenti per poter navigare più facilmente tra le righe del nostro programma, sopratutto quando esso sarà formato da migliaia di righe di codice. Rischieremo altrimenti di non ricordarci a cosa serve un determinato metodo e perché lo abbiamo scritto, sopratutto se riprendessimo in mano il nostro codice a distanza di tempo.
Inoltre, se dovessimo far lavorare altre persone sul nostro codice, gli eviteremo di dover spiegare a cosa servono determinati pezzi di codice, funzioni ecc…
Con i commenti il codice risulterà sempre molto più comprensibile per tutti.

La sintassi

Come già detto, la corretta sintassi grammaticale con cui scriviamo nel nostro linguaggio è estremamente importante, tanto che un qualsiasi errore di battitura farà fallire l’esecuzione del nostro programma.
Abbiamo detto che la presenza di più o meno spazi tra le parole non genererà errori. Questo è vero se la presenza di uno spazio è necessaria. Per esempio, là dove dovremmo scrivere:

using System;

potremmo anche scrivere:

using   System    ;

oppure

using
System;

ovvero potremmo aumentare di due o più gli spazi tra le parole, oppure andare a capo a nostro piacimento.
Questo è vero solo se si applica tra le diverse parole, in pratica non possiamo spezzare le parole. Se per esempio scrivessimo:

using Sys tem;

oppure

usi
ng System;

ci verrebbe rimandato un errore.

Stessa cosa vale per le maiuscole/minuscole essendo C# un linguaggio “case sensitive”, cioè sensibile alla variazione maiuscole/minuscole.
Questo significa che scrivendo:

using system; o Using System;

Avremo in entrambi i casi un errore perché le parole non verrebbero riconosciute.

Ricordiamoci inoltre che la sintassi corretta prevede tutte le punteggiature che saranno presenti negli esempi e negli scripts che leggerete.

Per esempio, il punto e virgola deve sempre seguire un’istruzione.
Il punto e virgola identifica la fine di un’istruzione (per esempio un if) e senza di essi ritornerebbe un errore perché il compilatore cercherebbe di riconoscere il codice ed eseguire un’istruzione fino a che non trova un punto e virgola.

Esistono inoltre delle regole di scrittura che noi non vedremo perché, in pratica, ininfluenti al funzionamento del programma. Si tratta di una convenzione chiamata appunto “Naming Conventions” che consiglia di utilizzare un sistema di scrittura standard (nomi delle variabili con la lettera piccola, nome delle classi e dei metodi con la lettera grande ecc..). Se volete approfondire questo argomento potrete trovare altre informazioni in rete. Ma non è fondamentale.

Riguardo alla sintassi è importante sapere che il nome dei vari oggetti non dovrà contenere spazi. Se si volessero utilizzare più parole per identificare un oggetto, è preferibile usare la “linea bassa” (underscore) per dividerle.
Es.  —> Metodo_sparo

Lo stile di scrittura del codice è del tutto personale. C’è chi preferisce scrivere i nomi delle variabili/metodi con l’underscore come descritto sopra oppure per esempio così: MetodoSparo. Come avrete notato io preferisco usare questo tipo di sintassi, ovvero scrivere senza simboli e con le lettere grandi di ogni parola.

L’importante è che le eventuali parole che useremo siano sempre unite (dunque una sola parola) e che non siano unite da caratteri che il C# può interpretare, tipo il segno meno, il segno più ecc… Non sarebbe possibile per esempio usare questa sintassi Metodo-Sparo perché il trattino al centro verrebbe interpretato come “meno” e il compilatore cercherebbe di fare “Metodo meno Sparo” e ovviamente ci tornerebbe un errore.

Un altro esempio sulla sintassi si può fare prendendo in considerazione lo scopo di un’istruzione.
Viene chiamato scopo ciò che avremo scritto tra due parentesi graffe. Chi si tratti di una funzione o altro.
Dunque lo scopo inizia con una parentesi graffa aperta e termina con una parentesi graffa chiusa.
All’interno di uno scopo potremmo avere più di un’istruzione. Ogni istruzione termina con un punto e virgola che ne decreta la fine.

I Namespace

Quando aprite un script di Unity (o ne create uno nuovo) vi troverete d’avanti a del codice di base già inserito nello script.
Se siete delfini curiosi vi sarete chiesti il perché della presenza della prima riga (o le prime righe, a seconda della versione di Unity che state usando).

using UnityEngine;

A cosa serve? Perché sta lì? 😯
Come avrete notato, sul vostro MonoDevelop la parola “using” verrà visualizzata con il colore grigio (o blu, se avete cambiato schema di colori) e questo sta a significare che essa è una parola che si integra con il MonoDevelop , cioè una parola che viene riconosciuta come facente di qualche funzione speciale in C#. Una così detta parola chiave.
Come risulterà ovvio, l’intera riga significa usa UnityEngine”.
UnityEngine è un namespace.

Per la precisione, using UnityEngine; significa:
“usa la collezione di classi che si trovano all’interno del namespace UnityEngine.

Potreste anche liberamente fregarvene di sapere cosa significhi tutto questo, anche perché il namespace “Using UnityEngine” viene sempre inserito automaticamente in un nuovo script di Unity.
Ma lasciatevi consigliare di farvi almeno un’idea di cosa sia un namespace. Vi assicuro che andando avanti nell’apprendimento, l’essere a conoscenza di un quadro d’insieme più vasto, vi renderà la vita molto più semplice.
Che poi non è neanche un concetto così difficile.

E adesso ve lo spiego, in poche righe:
I namespace possono essere paragonati alle cartelle presenti nel nostro disco rigido.
Sono come contenitori che hanno al loro interno elementi già costruiti da qualcun altro: le classi.
Come le cartelle contengono file, i namespace contengono le classi. In realtà possono contenere anche altri elementi, ma per noi questa definizione è più che sufficiente.

Infatti per usare Unity dovremo usare i namespace di Unity. Senza specificare using UnityEngine; le classi preimpostate di Unity non sarebbero disponibili. Specificandolo, diremo al nostro script che abbiamo intenzione di usare le classi proprietarie di Unity.

using UnityEngine” comunica dunque a MonoDevelop di utilizzare la serie di istruzioni, già impostate e pronte per l’uso, presenti al suo interno. Non ci interessa cosa facciano e quante siano, non per ora.

Dunque Unity non è solo quella finestra dove abbiamo visto la scena e gli altri pannelli, Unity comprende una miriade di classi con i rispettivi metodi già scritti e pronti per essere utilizzati dalle vostre sapienti mani.

4 pensieri su “La Sintassi e i NameSpace

    1. Ciao, MonoDevelop è un programma esterno e non della stessa casa di produzione di Unity. Per programmare (sia per Unity o altro) si può usare un qualsiasi altro “editor di codice” come Visual Studio o persino il blocco note di Windows.
      Puoi trovare Monodev nella cartella c:\Program Files (x86)\Unity\MonoDevelop\bin\MonoDevelop.exe o /Applications/Unity/MonoDevelop.app su Mac.
      Questo però solo nelle versioni più vecchie di Unity, perché a quanto pare il Monodev non sarà più presente nel bundle di Unity nelle prossime versioni, dalla 2018.1.
      Il mio consiglio è usare il più professionale (ma non per questo più complicato) Visual Studio, liberamente scaricabile al sito: https://visualstudio.microsoft.com/it/vs/community/
      Esistono poi tante altre scelte ugualmente valide, come il jetbrains (https://www.jetbrains.com/)
      Per impostare l’editor con cui verranno aperti gli scripts basta impostarlo su Unity in: Preferences> External Tools>External Script Editor.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *