Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET] Classi.

Ciao a tutti, ho un dubbio che non riesco a sciogliere.
Nei mie precedenti (superficiali) studi sulle classi, ho letto, soprattutto riguardo a Java, che la Classe appena creata o importata, necessita di essere compilata, per essere "riconosciuta" nel codice.
Io lavoro in VB, ma immagino si abbia lo stesso comportamento anche negli altri linguaggi: perchè .NET non ne ha bisogno? Anche solo dopo averla scritta (non compilata), è riconosciuta.
Grazie.

Ciao Fabrizio,

non capisco cosa intendi per "riconosciuta".
 
.m
 
-- 
blog @ //
milestone.topics.it
 
 
 


Intellisense Intellisense Intellisense
dipende dall'editor.....
 
prova a scrivere un programma in VB.net con il blocco note....è lo 
stesso!...non appare una beata fava!
 
Prova a scrivere un programma in Java con Eclipse.....e vedrai che 
appare la tua classe magicamente come dentro Vstudio!!!!
 
(oooooooooooooooooooooooooo di meraviglia!)
 
******************************************************************
se parli invece di compilazione....CERCANDO di capire: è lo stesso anche 
in .NET!
 
Scenario.....ASP.net.....linguaggio non ce ne frega....
ho programmato la mia classe custom per accedere ai dati e compiere 
alcune azioni business....tipo "RecuperaArticoliCategoria(nomeCategoria)....
L'ho messa in un namespace "MyFantasticBlog"
compilato.....mi viene fuori una dll...che contiene l'assembly della mia 
classe.
 
Voglio usare la dll in un progetto "terzo"
 
FINCHE'
 
non la sposto nella cartella bin e la referenzio nel mio progetto
 
MyFantasticBlog.RecuperaArticoliCategoria("...") non appare!
Non c'è verso!...anche il miglior intellisense NON SA che "firma" 
associare alle funzioni che "vorresti" usare!...non sa DOVE cercarle!
 
 
 
 


Ciao Mauro,
voglio dire che se dopo la scrittura/importazione della mia classe non ancora compilata, vado ad istanziarla in una routine, l'intellisense mi riconosce la classe e relative proprietà/metodi.
Da quanto mi è stato detto, ad es. in Java non è possibile, previa appunto compilazione.
Grazie.

 
Come stavo rispondendo a Mauro, mi sa che mi son fatto trarre in inganno dall'intellisense.
Scusate la banalità :-)

 compilazione.
 
come ti dice Wodka pura potenza dell'intellisense di Visual Studio.


 come ti dice Wodka pura potenza dell'intellisense di Visual Studio.
Grazie :-)


C'hai questo enorme problema in PHP che ha un OOP vero ma innestato su 
un linguaggio che non riconosce i tipi se non dopo averli creati.
 
Il sistema di sviluppo ci mette del suo...
io uso Eclipse indigo
....appena in php dichiaro un include_once("miaclasse.php");
mi fa lo scanning del file e va a cercarsi funzioni agganciabili....non 
è precisissimo....non sempre funziona!
 
Se in java agganci pezzi "compilati"...che come Net sono 
pseudo-compilati per girare in una VM (poi net alla fine se ne distanzia 
e produce un vero compilato).....il sistema di sviluppo ci mette del suo!
 
REFLECTION non l'ha inventata la Microsoft!
 
Devi scindere 2 "possibilità" dello sviluppo
 
A)
se sono in un progetto....e dichiaro 2 namespace....COME MAI li vedo pur 
non avendo compilato?
Il sistema ci mette del suo...se ci fai caso (eclipse te lo fa 
notare...vstudio meno....anzi punto ma c'è)...sei dentro un "coso" 
CHIAMATO WORKSPACE....li dentro ci sono file temporanei e chissà cosa 
che simulano una esecuzione.....per questo vedo i metodi creati in un 
altro project ....ma dentro il solito workspace...senza aver 
compilato(spesso ha compilato...ma non lo sai!)! Se sono esterni 
ciccia...punto B!
 
Ovvio che se sei in un editor "puro" non crea nulla e finche' non 
compili  e linki il codice ( e probabilmente nemmeno li se non ha un 
meccanismo del punto B) non vedrai nulla del codice scritto!
 
B) E' tutto esterno......Ad esempio in una DLL
...REFLECTION!
...come detto non è appannaggio di Microsoft (c'è pure in PHP pensa un po)
Cosa accade? Il sistema di sviluppo,una volta che hai comunicato che 
intendi avvalerti di quella DLL, scannerizza la dll alla ricerca di 
entry point validi...e te li mostra! e li aggiunge alla lista di 
funzioni che puoi scrivere!...se tutto questo non c'è nel tuo ambiente 
di sviluppo....attaccati al tram!
 

ZAC....
per questo ci sono pochi ambienti di sviluppo...
è un casino immane farli validi....e funzionanti....!!! E Microsoft imho 
c'ha il più valido!!!
 

Che fosse legato all'ambiente lo avevo capito: l'es. del blocco note è esaustivo.
Mi interessava appunto sviscerare il funzionamento, così da non avere un'idea errata del concetto.
Tutto chiaro Vodka, grazie :-)


In generale ti hanno già risposto
 
Aggiungo solo che, parcheggiato in un angolino della tua mente, metti comunque in conto che un "Build" può sistemare alcune situazioni del genere.
Se cominci a lavorare con solution complesse, che incorporano vari progetti di tipi diversi (ClassLibrary, vari tipi di UI, altro), uso pesante di ereditarietà, polimorfisco ecc... magari il tutto accoppiato con un sistema di CSV, esistono occasioni in cui anche il buon Visual Studio ogni tanto si incarta, non riconoscendo istantaneamente modifiche a classi esistenti.
 
Se pensi di vedere errori "fantasma" di quel genere, spesso una compilazione è la soluzione corretta anche in questo ambiente.
 

 Se pensi di vedere errori "fantasma" di quel genere, spesso una compilazione è la soluzione corretta anche in questo ambiente.
Perfetto, grazie anche a te Luca ;-)

Anzi, ti rispondo affermando che non è raro che per far sparire segnalazioni di errori, provveda a compilare.