Nuovo Progetto) Dopo di che si aprirà una finestra di dialogo;a questo punto selezionate "Applicazione Console"(che è quella che ci interessa al momento le altre saranno approfondite più in la) e assegnatele un nome(in basso) e date conferma.^^ Bene ora avrete davanti un codice di questo tipo : using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test_Ex { class Program { static void Main() { } } } Niente paura :sorr: ora vi spiegherò ogni cosa^^ using System; Cosa vuol dire? La parte che ci interessa è la parola chiave using.Essa ci servirà per sempre poichè non fa altro che richiamare dei namespace("Spazio dei nomi") ossia un ambito che contiene delle entità(classi) con all'interno a loro volta dei metodi ecc..Quindi la useremo per usare metodi,richiamare variabili di altri namespace o strutture ecc... In questo esempio richiama i namespace fondamentali per richiamare la Console. namespace Test_Ex Analizziamo per bene: poco fa ho detto che namespace è un ambito con all'interno delle funzioni,variabili,ecc(oggetti insomma).Ma cosa vuol dire quella scritta a fianco? Nulla di speciale è solo il namespace della nostra applicazione che servirà per creare i costruttori,metodi;insomma è fondamentale ricordasela in quanto nell'atto della compilazione verrà restituito un errore^^ class Program E questo cos'è? Bè dal nome si dovrebbe capire;è stata definita una class col nome Program(è fatto in automatico dall'IDE),nel quale troviamo i nostri metodi.Ma aspetta!Io vedo solo... static void Main() Bè nulla di importante.NO!E importante eccome!Dal nome "Main()" si può comprendere che è qualcosa di "principale",ma cosa per l'esattezza?Esso è il punto di ingresso principale(è un metodo con il modificatore static,di cui non vi parlerò oggi)nel quale vengono eseguite le righe di codice principali.Infatti,se creassimo un altro metodo l'IDE lo ignorerebbe(a me no che non lo richiamassimo nel metodo Main),poichè verrà sempre eseguito il metodo Main(). N.B.Le classi,i metodi,i namespace,ecc si aprono e si chiudono con le parentesi graffe { }. Per richiamarle basta usare la combinazione : Alt+0123 { Alt+0125 } Edit: By 3x: Perdonami ma non potevo resistere. Le graffe si possono scrivere con la più semplice combinazione Shift+Alt Gr + è/+ Quindi tutto ciò che si troverà al di fuori di esse,potrà non appartenere all'entità oppure restituire un errore. Stampiamo..stampiamo!! Bene terminata l'orrida spiegazione iniziamo a fare qualcosa di più concreto! Iniziamo col scrivere nel metodo Main : static void Main() { Console.WriteLine("Hey,Sono nuovo!Tu chi sei?"); Console.ReadLine(); } Oh oh,ma che sarà mai tutto questo pandemonio?Analizziamo! Console.WriteLine("Hey,Sono nuovo!Tu chi sei?"); Questa riga stamperà(per modo di dire) a video una stringa("Hey,Sono nuovo!Tu chi sei?") che viene inserita fra le parentesi,poichè questo metodo richiede dei parametri di tipo string(questo verrà spiegato più in là^^) Console.ReadLine(); Mette in attesa l'applicazione fino a quando l'utente non premerà un tasto.Se lo si omette l'applicazione si aprirà e si chiuderà in un frazione di secondo proprio perchè non ci sarà niente che fermerà l'apertura dell'applicazione.Quindi sarà opportuno scriverlo sempre dopo ogni stampata a video. Il codice nell'insieme dovrebbe essere così: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test_Ex { class Program { static void Main() { Console.WriteLine("Hey,Sono nuovo!Tu chi sei?"); Console.ReadLine(); } } } Bene,fatto tutto questo premete F5 o dal menù Debug-->Avvia debug,attendete et voilà,ecco la nostra prima applicazione :sorr3: To be continued: Nella prossima lezione tratteremo delle variabili^^ Extra: Più in là crerò una lezione di approfondimento per il metodo WriteLine^-^" /> Nuovo Progetto) Dopo di che si aprirà una finestra di dialogo;a questo punto selezionate "Applicazione Console"(che è quella che ci interessa al momento le altre saranno approfondite più in la) e..." /> Nuovo Progetto) Dopo di che si aprirà una finestra di dialogo;a questo punto selezionate "Applicazione Console"(che è quella che ci interessa al momento le altre saranno approfondite più in la) e..." />

Vai al contenuto


Toggle Chat RM - Chat Apri la Chat in un popup

E' severamente vietato richiedere supporto su RPG Maker in chat!
@  NoxChibi : (22 May 2012 - 02:59 PM) hi night come procede il tuo progetto?
@  Night : (22 May 2012 - 02:56 PM) buongiornooo :3
@  MihaChan : (22 May 2012 - 01:20 PM) lol
@  MihaChan : (22 May 2012 - 01:20 PM) !!oaiC
@  Melosx : (22 May 2012 - 12:47 PM) ^.^ !!nahCahiM oaiC
@  MihaChan : (22 May 2012 - 12:41 PM) buonsalve
@  Melosx : (22 May 2012 - 12:28 PM) cmq buongiorno a tutti
@  Melosx : (22 May 2012 - 12:28 PM) Dimmi Nox
@  MihaChan : (22 May 2012 - 12:07 PM) Illusi ghgh
@  MihaChan : (22 May 2012 - 12:06 PM) Gli piacerebbe.... xDDDD
@  MihaChan : (22 May 2012 - 12:06 PM) e Francesi che dicono che il Ferrero Rocher è Francese....
@  MihaChan : (22 May 2012 - 12:06 PM) Tedeschi che dicono che la Nutella, il Kinder Cioccolato e L'ovetto Kinder sono tedeschi...
@  MihaChan : (22 May 2012 - 12:06 PM) Ah
@  NoxChibi : (21 May 2012 - 10:20 PM) melosx
@  NoosiTD : (21 May 2012 - 05:10 PM) lololo
@  WolfHound : (21 May 2012 - 11:06 AM) lululu
@  MihaChan : (20 May 2012 - 08:58 PM) lelele
@  Melosx : (20 May 2012 - 06:23 PM) lalala
@  Darkness : (20 May 2012 - 04:30 PM) salve
@  Abadon : (20 May 2012 - 04:10 PM) salve

[001]C#!Iniziamo Pt.2


  • Per cortesia connettiti per rispondere
38 risposte a questa discussione

#1 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 03 June 2010 - 04:29 PM

Introduzione:
Bene,bene..Ora possono iniziare le vere lezioni^^.
Sarà come sempre breve e semplice..Bè,iniziamo!

First Step:
Nella scorsa "lezione" vi ho fatto scaricare ed installare VS 2008 C#.Ora apritelo e create un nuovo progetto(File-->Nuovo Progetto)

Dopo di che si aprirà una finestra di dialogo;a questo punto selezionate "Applicazione Console"(che è quella che ci interessa al momento le altre saranno approfondite più in la) e assegnatele un nome(in basso) e date conferma.^^

Bene ora avrete davanti un codice di questo tipo :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test_Ex
{
class Program
{
static void Main()
{
}
}
}


Niente paura :sorr: ora vi spiegherò ogni cosa^^


using System;

Cosa vuol dire?

La parte che ci interessa è la parola chiave using.Essa ci servirà per sempre poichè non fa altro che richiamare dei namespace("Spazio dei nomi") ossia un ambito che contiene delle entità(classi) con all'interno a loro volta dei metodi ecc..Quindi la useremo per usare metodi,richiamare variabili di altri namespace o strutture ecc...
In questo esempio richiama i namespace fondamentali per richiamare la Console.


namespace Test_Ex

Analizziamo per bene: poco fa ho detto che namespace è un ambito con all'interno delle funzioni,variabili,ecc(oggetti insomma).Ma cosa vuol dire quella scritta a fianco?
Nulla di speciale è solo il namespace della nostra applicazione che servirà per creare i costruttori,metodi;insomma è fondamentale ricordasela in quanto nell'atto della compilazione verrà restituito un errore^^


class Program

E questo cos'è? Bè dal nome si dovrebbe capire;è stata definita una class col nome Program(è fatto in automatico dall'IDE),nel quale troviamo i nostri metodi.Ma aspetta!Io vedo solo...


static void Main()

Bè nulla di importante.NO!E importante eccome!Dal nome "Main()"
si può comprendere che è qualcosa di "principale",ma cosa per l'esattezza?Esso è il punto di ingresso principale(è un metodo con il modificatore static,di cui non vi parlerò oggi)nel quale vengono eseguite le righe di codice principali.Infatti,se creassimo un altro metodo l'IDE lo ignorerebbe(a me no che non lo richiamassimo nel metodo Main),poichè verrà sempre eseguito il metodo Main().

N.B.Le classi,i metodi,i namespace,ecc si aprono e si chiudono con le parentesi graffe { }. Per richiamarle basta usare la combinazione :

Alt+0123 {
Alt+0125 }

Edit: By 3x: Perdonami ma non potevo resistere.
Le graffe si possono scrivere con la più semplice combinazione Shift+Alt Gr + è/+

Quindi tutto ciò che si troverà al di fuori di esse,potrà non appartenere all'entità oppure restituire un errore.

Stampiamo..stampiamo!!
Bene terminata l'orrida spiegazione iniziamo a fare qualcosa di più concreto!

Iniziamo col scrivere nel metodo Main :
static void Main()
{
Console.WriteLine("Hey,Sono nuovo!Tu chi sei?");
Console.ReadLine();
}
Oh oh,ma che sarà mai tutto questo pandemonio?Analizziamo!

Console.WriteLine("Hey,Sono nuovo!Tu chi sei?");

Questa riga stamperà(per modo di dire) a video una stringa("Hey,Sono nuovo!Tu chi sei?") che viene inserita fra le parentesi,poichè questo metodo richiede dei parametri di tipo string(questo verrà spiegato più in là^^)

Console.ReadLine();
Mette in attesa l'applicazione fino a quando l'utente non premerà un tasto.Se lo si omette l'applicazione si aprirà e si chiuderà in un frazione di secondo proprio perchè non ci sarà niente che fermerà l'apertura dell'applicazione.Quindi sarà opportuno scriverlo sempre dopo ogni stampata a video.

Il codice nell'insieme dovrebbe essere così:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test_Ex
{
class Program
{
static void Main()
{
Console.WriteLine("Hey,Sono nuovo!Tu chi sei?");
Console.ReadLine();
}
}
}



Bene,fatto tutto questo premete F5 o dal menù Debug-->Avvia debug,attendete et voilà,ecco la nostra prima applicazione :sorr3:

To be continued:
Nella prossima lezione tratteremo delle variabili^^

Extra:
Più in là crerò una lezione di approfondimento per il metodo WriteLine^-^
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#2 OFFLINE   tony8970

tony8970

    RM Avanzato

  • Utenti RM
  • StellettaStellettaStelletta
  • 69 Messaggi:
  • Tool:
    VX

Inviato 03 June 2010 - 04:51 PM

eheh Veramente ben fatte :) spieghi molto bene! Io sono già un pochino avanti di programmazione console tra C, C++ e C# sono abbastanza saturo http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif (delle basi :) ).

Magari se posso permettermi di fare qualche piccola rischiesta non sarebbero male lezioni "mirate" alle classi, metodi, oggetti... più che altro alla creazione da zero. io qualcosa già sò fare però devo ammettere che per chi non ha mai fatto programmazione ad oggetti è abbastanza ostico come concetto :s. ( e un pò di sano ripasso e esercizio non fa MAI male)

e una su tutti i cicli :) :)

WileZ comunque è già una buona base... per quanto sono d'accordo con te sulla reale utilità di quel sito x°D

p.s.
in futuro (molto in futuro :D) tratterai anche il .net o solo XNA?

#3 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 03 June 2010 - 04:56 PM

Eheh grazie Tony^^
Mi fa paicere che ti piacciono le mie lezioni (:
Eppure sono autodidatta quindi tutto ciò che so è frutto della mia esperienza^^

Comunque le classi,metodi ecc li tratterò più in là,per ora voglio dare delle basi ma non ti preoccupare presto arriveranno^^

Comunque per quanto riguarda le lezioni future che tratterò riguardano entrambi i framework(.net e xna) perchè il primo solidifica le basi per poter essere pronti al prossimo.Sto pure vedendo di studiare i metodi che possiede XNA per creare le strutture client/server ^^

Comunque WileZ è molto bravo nella modellazione 3D che nella programmazione,ma rimane sempre un grande^^
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#4 OFFLINE   tony8970

tony8970

    RM Avanzato

  • Utenti RM
  • StellettaStellettaStelletta
  • 69 Messaggi:
  • Tool:
    VX

Inviato 03 June 2010 - 06:18 PM

Takobon, dice:

Eheh grazie Tony^^

Comunque WileZ è molto bravo nella modellazione 3D che nella programmazione,ma rimane sempre un grande^^

verissimo :D!

Allora attendo paziente le prossime lezioni :)

p.s.
moooooolto interessante la questione client/server in xna http://rpgmkr.net/fo...tyle_emoticons/default/bave.gif:

#5 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 03 June 2010 - 06:55 PM

Lo so ^^
Ma è un concetto abbastanza difficile di per sè http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#6 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 03 June 2010 - 08:04 PM

Infatti si va per gradi =)

Lezione molto chiara e semplice,e per adesso ho capito tutto (°°)

Attendo le prossime ;)
Immagine inserita
Spoiler

#7 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 03 June 2010 - 08:09 PM

Ælly, dice:

Infatti si va per gradi =)

Lezione molto chiara e semplice,e per adesso ho capito tutto (°°)

Attendo le prossime ;)


Ottimo..pensavo di essere stato poco chiaro http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#8 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 03 June 2010 - 09:56 PM

Tak,io quindi per stampare dovrei fare così?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test_Ex
{
class Program
{
static void Main()
Console.WriteLine("Prova Stamp");
Console.ReadLine();
{
}
}
}

Immagine inserita
Spoiler

#9 OFFLINE   3xter

3xter

    Fondatori

  • Amministratori
  • 1006 Messaggi:
  • Progetto VX:
    Rain's Legacy
  • Tool:
    Rpg Maker VX / Sharp Develop

Inviato 03 June 2010 - 10:03 PM

Rispondo io. Si.
Immagine inserita Burle Simpatiche
Spoiler
Ecco perchè Rain's Legacy va avanti rapidamente
Spoiler

#10 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 03 June 2010 - 11:25 PM

No ally,hai fatto un errore(più che altro mi sono scordato di scriverlo,domani provvederò a farlo^^)

Le parentesi graffe delimitano le classi,i metodi ecc...quindi ogni cosa al di fuori di una classe o altro può essere o non riconosciuta o appartene ad un'altra classe...

quindi le due righe vanno inserite fra le parentesi graffe del metodo Main,così

static void Main()
{
Console.WriteLine("Prova Stamp");
Console.ReadLine();
}
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#11 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 03 June 2010 - 11:39 PM

Rileggendo la lezione non mi ricordavo:

Citazione

N.B.Le classi,i metodi,i namespace,ecc si aprono e si chiudono con le parentesi graffe { }.
Grazie,ora mi è molto più chiaro.
Quindi io ho lasciate le graffe solo dello script di default,senza aggiungere quelle del metodo stamp...
Immagine inserita
Spoiler

#12 OFFLINE   3xter

3xter

    Fondatori

  • Amministratori
  • 1006 Messaggi:
  • Progetto VX:
    Rain's Legacy
  • Tool:
    Rpg Maker VX / Sharp Develop

Inviato 03 June 2010 - 11:51 PM

Stamp non è un metodo ma un'istruzione.
Eseguita nel metodo Main (che è il primo ad essere eseguito..SEMPRE)
Per quello tako ti ha segnalato l'errore, perchè all'interno del metodo main (il primo ad essere eseguito) non vi era alcuna istruzione non rispettando la sintassi:
classe {Metodo {istruzioni}}
ma
classe {metodo istruzioni {}}
Immagine inserita Burle Simpatiche
Spoiler
Ecco perchè Rain's Legacy va avanti rapidamente
Spoiler

#13 OFFLINE   Anthair

Anthair

    Maker Viandante

  • Utenti RM
  • 189 Messaggi:
  • Progetto 2k/2k3:
    Aeterna Nova Lux
  • Progetto XP:
    The Black Mansion,<???>
  • Tool:
    Matita & Foglio bianco

Inviato 04 June 2010 - 09:14 AM

ok, fino a qui cambiano solo un paio di parole rispetto al C++.

Domandina:
C# è case sensitive?
Perchè su C++ "main" va con la minuscola.
Immagine inseritaMassacratore n.1 del Mutiliamo gli RTP ContestImmagine inseritaVisionario n.2 del Chipset Pixelling ContestBanditore n.1 dello Slogan ContestPittore n.3 del Banner Contest #3
  Missing_Seven: ma tu trix non fai mai niente tuto il giorno?  

#14 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 04 June 2010 - 10:58 AM

Ti rispondo io. Si, è Case Sensitive! Main è scritto con la maiuscola perchè è un metodo.
Podi raggiunti
Spoiler

#15 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 04 June 2010 - 12:47 PM

Ragazzi,scusate per la mia piccola ma grande svista^^

Ho provveduto ad aggiungere le giuste modifiche,ora dovrebbe essere tutto ok^^

Oggi forse ne posterò un'altra^^
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#16 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 04 June 2010 - 12:49 PM

Quindi se dovessi scrivere Main o main,non avrei problemi?
Immagine inserita
Spoiler

#17 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 04 June 2010 - 12:56 PM

Nu... Case Sensitive significa che distingue tra maiuscole e minuscole. Quindi se tu chiamassi "main" il metodo principale, ti darebbe errore dicendo che non riesce a trovare il metodo Main.
Podi raggiunti
Spoiler

#18 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 04 June 2010 - 01:01 PM

Ælly, dice:

Quindi se dovessi scrivere Main o main,non avrei problemi?


Non proprio.Ti spiego:

In questo caso abbiamo il metodo principale(Main) che viene generato automaticamente(se usi il template della console,form,ecc) e non ne puoi creare un altro,se no si avrebbero solo conflitti.

In più case sensitive,vuol dire che se compari due stringhe di valore una "C#" e l'altra "c#" avremo un risultato falso in quanto nel C# rispetta le maiuscole e minuscole^^

Spero di esser stato chiaro
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#19 OFFLINE   3xter

3xter

    Fondatori

  • Amministratori
  • 1006 Messaggi:
  • Progetto VX:
    Rain's Legacy
  • Tool:
    Rpg Maker VX / Sharp Develop

Inviato 04 June 2010 - 01:02 PM

in poche parole Main{} != main{}
Immagine inserita Burle Simpatiche
Spoiler
Ecco perchè Rain's Legacy va avanti rapidamente
Spoiler

#20 OFFLINE   MCL88

MCL88

    RM Utente

  • Utenti RM
  • StellettaStelletta
  • 15 Messaggi:

Inviato 05 June 2010 - 08:02 AM

Una domanda: Ma ReadLine() non permette anche la scrittura di testo?




1 utente(i) stanno leggendo questa discussione

0 utenti, 1 ospiti, 0 utenti anonimi