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

Come faccio a impostare di Default l'opzione che permette le dichiarazioni
implicite?
L'Help dà un paio di opzioni tipo, Option explicit off, e va beh, ma poi
parla di un misterioso settaggio che non sono riuscito a trovare:
"Setting the appropriate project property in the Properties window of the
integrated development environment (IDE)"
Che cos'è questa "appropriate project property"?
Ci ho perso un'ora buona senza cavarci niente... boh!
So che molti penseranno, meglio, le dichiarazioni implicite facilitano gli
errori di battitura, ma io di solito uso variabili con nomi molto lunghi
(una rottura di scatole, ma almeno se rileggo capisco quello che ho scritto
:-), e poi vado col il copia e incolla, quindi il problema non mi tocca più
di tanto.

 quindi il problema non mi tocca più di tanto.
Scusa, ma sei vai di copy&paste è difficile scrivere
Dim variabileconnomemoltolungo  as string e fare il copia di
variabileconnomemoltolungo
Se lavori a programmi complessi Option Explicit e Option Strict sempre su
ON!!!
--
Dark Hado
"Pensare non è essere d'accordo o in disaccordo: questo è votare."
Robert Lee Frost

L'opzione di cui parli e Option Explicit che normalmente è ON e nel tuo caso
vuoi normalmente utilizzare OFF.
Tale opzione non è disponibile di default (Io vorrei invece avere anche
Option Strict ON di default, come era nella Beta1...) devi modificare le
impostazioni del progetto volta per volta.
A dire il vero esiste un 'trick' che è quello di modificare i templates che
VB.Net carica a default, però francamente non ricordo il path esatto,
ricordo solo che erano parecchi files da modificare, ecco perchè non l'ho
mai fatto.
Puoi sempre scrivere Option Explicit OFF in testa ad ogni modulo per
escludere il type checking.
HTH
--
Corrado Cavalli
UGIdotNET - 
http://www.ugidotnet.org

 variabileconnomemoltolungo
Beh, a me scoccia soprattutto tornare all'inizio del listato, e comunque
certe variabili le dichiaro, ma a volte mi ritrovo a usare delle piccole
variabili temporanee che a mio parere è non ha senso perdere tempo a
dichiarare, tipo:
for ciclo% = 1 to altra_variabile...

 escludere il type checking.
Infatti per ora faccio così, ma se si trovasse un modo migliore...

 tocca più di tanto.
Ahhrghhhh!!!
Non voglio essere offensivo, ma penso che più che trovare il
modo di eliminare l'Option Explicit, ti serva una buona
lezione sulla OOP, che nasce, direi quasi principalmente, per
*eliminare* proprio l'utilizzo del riuso tramite
copia-incolla.
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 copia-incolla.
Beh, mica sto parlando del riutilizzo del copia e incolla su blocchi di
codice (e anche qui poi ci sarebbe da discutere)... semplicemente dicevo che
se la stessa variabile di 15 caratteri la uso quattro volte in quattro righe
successive (quattro IF per esempio) preferisco usare il copia e incolla
piuttosto che riscriverla a mano.

certe variabili le dichiaro
Fossi stato nel team di VB... avrei proprio nascosto bene, se non eliminato
del tutto, la possibilità di non Option Explicit.
Prova a fare un progetto complesso... vedi quanti errori possibili incontri
se non lasci l'Option Explicit... per fare
programmazione SERIA... l'Option Explicit è la base.
Ragazzi... finalmente VB a Oggetti e usiamo Copia Incolla ? :o))
Kind Regards,
--
Antonio Cangiano
Webmaster di 
www.visualcsharp.it
Fondatore di free.it.comp.lang.csharp

 Ragazzi... finalmente VB a Oggetti e usiamo Copia Incolla ? :o))
Per quel che riguarda il copia e incolla io mi riferivo solamente ai nomi
delle variabili...
Comunque adesso dico io, va bene la filisofia della programmazione a
oggetti, le classi incapsulate e via dicendo... ma cerchiamo di mantenere un
pò di elasticità, a volte a voler essere troppo rigidi ci si complica la
vita inutilmente.
Per esempio: due mesi fa ho dovuto far comunicare due programmi col tcp/ip,
per far questo ho creato una classe che renda più umane la API WinSock, e
con quella mi trovo bene, ora però mi trovo con un programma che ha
semplicemente bisogno di sapere se si è connessi a Internet.
A questo punto trovo molto più semplice copiare e incollare il relativo
codice (poche linee in tutto) prendendolo dalla classe che ho scritto,
piuttosto che ereditare l'intera classe, allocare tutte le sue variabili e
via dicendo appesantendo il programma solo per rispettare i "canoni teorici"
della oop.

Certo Dimio... i canoni teorici della oop sono praticamente indispensabili
su progetti di grandi dimensioni, complessi... magari lavori da team. In
quel caso la modularità offerta dall'oo è necessaria.
Per programmi non particolarmente complessi,
puoi gestire il tutto anche in maniera non troppo rigorosa e funziona, anche
se, per abitudine... sarebbe bello iniziare a programmare pensando oo e non
in maniera procedurale. Comunque sono scelte e stili, e dipende dai casi.
Best Regards,


 copia e incolla piuttosto che riscriverla a mano.
CTRL-Space, questo sconosciuto...


 teorici" della oop.
Per prima cosa OOP non vuole dire ereditare a tutti i costi.
Direi, anzi, che ereditare la tua classe Winsock sia in
generale un errore.
Poi, il problema di copiare una parte di codice è dovuto al
non aver pensato il codice per il riuso. Tutto qui. Avere
avuto più classi di livello diverso ti avrebbe permesso di
utilizzarle senza copia-incolla.


 CTRL-Space, questo sconosciuto...
Beh, se usi il control+space mi spieghi come fai a sbagliare la digitazione dei nomi delle variabili?
E comunque il copia e incolla è altrettanto veloce.

 utilizzarle senza copia-incolla.
Una classe per 4 righe di codice?
Sarebbe come voler spianare una briciola col rullo compressore.

 E comunque il copia e incolla è altrettanto veloce.
Prova a fare copia-incolla dei nomi di 3 o 4 variabili e poi
sappimi dire se è veloce quanto un ctrl-space.


 compressore.
No, affatto.
Io credo che ci sia in generale una grande incomprensione sul
riuso del codice, nella quale mi permetto di dire, in base a
varie cose che hai affermato, sia ricaduto anche tu.
Sembra che il fine del *riuso* sia la velocità di sviluppo del
sw.
Nulla di più errato.
Il fine del riuso è lo sviluppo di sw migliore, con meno bug,
e di più facile gestione.
Utilizzare parti di codice già testate significa introdurre
fin dall'inizio un numero minore di bug.
Unire in un unico punto funzionalità comuni significa testarle
in un unico punto, ed eventualmente modificarle in un unico
punto.
Il copia-incolla è quanto di più distante ci sia dal riuso,
sia come obbiettivi che come risultati.
Tornando al discorso di prima, se è necessario si scrive una
classe anche per *una sola* riga di codice.


 sia come obbiettivi che come risultati.
Mah, io non riesco a essere così rigido, la programmazione a oggetti è qualcosa di relativamente recente, ma anche ai tempi della
programmazione modulare c'erano programmi "spaghetti" e programmi ben fatti e strutturati, si potevano comunque creare delle
funzioni o delle sub ben documentate e testate che, se fatte come si deve, potevano essere riutilizzate (col copia e incolla) con
successo in diversi programmi esattamente come si fa oggi con le classi.
Alla fine una classe non è altro che un'estensione di questo modo di programmare.
(I giovani non hanno più rispetto degli anziani :-))

 sappimi dire se è veloce quanto un ctrl-space.
Qui ti devo dare ragione, ma il fatto è che col ctrl+space, se due variabili iniziano allo stesso modo, ti puoi anche sbagliare, col
copia e incolla invece non ti sbagli MAI.

 col copia e incolla invece non ti sbagli MAI.
Io non ne sono affatto convinto.


 anziani :-))
Pensa alla quantità di bug presenti nel sw che viene ancora
sviluppato in tale maniera (purtroppo il C continua ad essere
il linguaggio più utilizzato).
Sarà forse una deformazione professionale, ma io ho sempre
sviluppato codice che doveva essere se non esente da bug,
sicuramente con una quantità minima di errori.


 Io non ne sono affatto convinto.
Ma scusa, come fai a sbagliarti col copia e incolla?
Per come sono abituato a usare la tastiera, errori di quel tipo mi capitano veramente di rado.
Intendiamoci, i programmi che faccio hanno bug di tutti i tipi, ma sono sempre errori di concetto, non errori di digitazione.

 sicuramente con una quantità minima di errori.
Ah, allora siamo agni antipodi, la mia priorità è sempre stata il basso consumo di RAM e di HD :-)
E forse alla fine hai pure ragione, cioè che alla fin dei conti nei programmi (specie se grossi) la cosa più importante è che
abbiano meno bug possibili, ma sviluppando software più piccoli si può essere anche un pò meno rigorosi senza che il prodotto ne
risenta granché (imho).

 risenta granché (imho).
Io credo che la qualità sia sempre importante, sia nei sw
semplici che nei progetti complessi.
L'unica cosa che cambia sono gli effetti che le mancata
qualità del sw. Ma perché chi commissiona un sw semplice
dovrebbe essere meno degno di rispetto?


 Ma scusa, come fai a sbagliarti col copia e incolla?
Saltando pezzi di codice, dimenticandosi di incollare
modifiche successive, ecc...


 dovrebbe essere meno degno di rispetto?
Io intendevo solamente dire che con software più piccoli essere così rigorosi non è essenziale per quel che riguarda la qualità del
prodotto finito, e anche i bug possono essere ridotti al minimo senza troppi sforzi.

 modifiche successive, ecc...
Se però limiti il copia e incolla ai nomi delle variabili il problema non si pone.
Per quel che riguarda il copy&paste su pezzi di codice, te ne do atto il rischio è alto, ma anche qui dipende da come si è abituati
a programmare, se una Function/Sub non usa variabili pubbliche può dirsi, a ragione, incapsulata come una classe, e può essere
transitata senza problemi da un programma all'altro.

 ridotti al minimo senza troppi sforzi.
Sì, sì. Avevo capito un'altra cosa.


 problema non si pone.
Potresti sempre saltare qualche carattere, ma in questo caso
le possibilità di errore sono le stesse del ctrl-space (anche
se il tipo di errore è diverso).


 se il tipo di errore è diverso).
Ctrl+Shift+Right questo sconosciuto :-)))))