Newsgroup: it.comp.lang.visual-basic
Titolo: concatenare due stringhe con + piuttosto che con &

Dim stringa1 As String
stringa1 = "ciao" + "mare"
stringa1 = "ciao" & "mare"
danno lo stesso risultato.
Immagino che, se ho due operatori per fare la stessa cosa, una qualche
differenza ci deve essere...
qualcuno la conosce, questa differenza?
Grazie.

 stringa1 = "ciao" & "mare"
con le stringhe io uso sempre la seconda.


 wrote in message 10k82td$5fs$1...@fe2.cs.interbusiness.it...


guapo wrote:
La differenza sta nel modo in cui vengono trattate le espressioni
contenenti Null
"Tele" & "vendita" -> "Televendita"
"Tele" & Null -> "Tele"
Tele + Null -> Null
Utilizzando variabili di tipo String non ci sono differenze, ma tenendo
conto che VB opera in certi casi delle conversioni implicite e alcune
funzioni se usate senza il $ finale restituiscono Variant, conviene
usare sempre &, a meno che il risultato Null non sia desiderato per
scopi particolari.
Ciao
Flavio Ronco
-- 
f.ronco@*NonMiServeNiente*
flashnet.it
http://www.metabrains.com
  [Under Construction]
-------------------------------------------------------------
"Che pubblico in gamba! Se ci dite dove lavorate,
domani mattina se abbiamo tempo vi veniamo a vedere"
[Paolo Rossi]

 debba essere. Mi interessa xchč stň tenendo un corso di VB e un allievo mi


 > debba essere. Mi interessa xchè stò tenendo un corso di VB e un allievo


 Grazie pal & Flavio (o pal + Flavio?)
grazie pal punto.
grazie flavio punto.
sto gia' pomiciando con paperino e hellboy, non vorrei diventare un harem...

la differenza dovrebbe stare nel fatto che il  + e' un operatore di somma e
nel caso di stringe opera come & mentre & e' un operatore di concatenamento
variabili
qundi se fai "mare" & date dovrebbe funzionare mentre mare + date no
Ciao stefano


no comment
Roal Zanazzi

 no comment
please, please do comment <g>

 concatenation to eliminate ambiguity and provide self-documenting code.
Già, avevo dimenticato che "11" + "11" = 22 o 1111, a seconda di come
sono dimensionate le variabili in gioco.
La mia solita imprecisione.
Ciao
Flavio Ronco
P.S. Se avessi bisogno di un collaboratore per lo sviluppo di un
programma di gestione archivio storico documentario, (ricordi la
questione immagini +[&] database?) dici che lo trovo? ;-). 



Non me l'aspettavo: non ero il tuo nottambulo preferito? :-D
Comunque anch'io tengo alla *divisione* dei beni: pal/Flavio
Ciao
Flavio


vedo adesso (*) il poscritto.
(*)
decisamente mi serve una settimana corta, tipo lun-mar lavoro, mer-dom
ferie...
se possibile in un anno corto: gen lavoro, feb-dic ferie.
a parte un po' di ingorghi, scrivimi in privato.
a costo di scatenare gelosie in altri... -- come dicevano vicino a casa tua,
honni soit qui mal y pense :)
e cmq io non pensavo affatto agli effetti della combinatoria con null,
quindi no te preocupe... l'importante e' la disponibilita' a ragionare,
quella si'.
ciao, a.

 wrote


Grazie.

 ormai ci manca solo che su icq metta uno squillo...
Con tutte queste discussioni sulle chat, mi stai facendo venir voglia di
installare aisicchiù, ma se metti le squillo, devo metterlo al lavoro, non
a casa...
Salutoni, Gaetano
--
Real E-address: 
gaet...@hotmail.com

 con o senza capelli, tutt'al più a Michael Douglas
ah.
non sei il mio tipo.
ciao, a.

 wrote


L'operatore + veniva utilizzato con vb3 e vb4
con la nascita di vb5  si pensato di distinguere questa cosa...
& per concatenare stringhe, quindi aumenta la legibilità
+ per operatore...
considera che l'operatore & può funzionare con tipo di dati stringa
mentre prima era possibile usare solo + quindi sai che casino!!!

Giusto. personalmente preferisco il + e converto tutto in stringhe
Ciao stefano

 Maurizio
Infatti io uso il + xchè ero abituato a farlo quando (100-150 anni fa) usavo
gwbasic. E il concetto di variant non si sapeva cosa fosse.
Forse la & è stata introdotta quando è nata la possibilità di fare accessi
ai database. In questo caso è spesso necessario concatenare variabili di
tipo diverso magari senza sapere bene di che tipo sono...

 wrote

Guarda che le cose non stanno cosi':
Ecco cosa dice l'Help di Visual Basic 3 (Win16):
+ Operator
Used to sum two numbers.
Syntax
result = operand1 + operand2
Remarks
Although you can also use the + operator to concatenate two character
strings, you should use the & operator for concatenation to eliminate
ambiguity and provide self-documenting code.
When you use the + operator, you may not be able to determine whether
addition or string concatenation is to occur.
Ed ora la Guida di Visual Basic 4 (Win16/32):
Operatore +
Utilizzato per sommare due numeri.
Sintassi
risultato = espressione1+espressione2
La sintassi dell'operatore + è composta dalle parti di seguito descritte:
Parte Descrizione
risultato Qualsiasi variabile numerica.
espressione1 Qualsiasi espressione.
espressione2 Qualsiasi espressione.
Osservazioni
Sebbene l'operatore + possa essere utilizzato per concatenare due stringhe
di caratteri, si consiglia di utilizzare a questo scopo l'operatore &, per
evitare ambiguità nell'esecuzione e per fornire del codice autoesplicativo.
Quando si utilizza l'operatore +, può essere impossibile determinare se tale
operatore darà luogo ad un'addizione o ad un concatenamento.
Quanto a VB1 e VB2 francamente non ricordo.
Ciao.
Maurizio

 tipo diverso magari senza sapere bene di che tipo sono...
Penso che sia stata introdotta a causa dei Variant. Comunque altri dialetti
Basic piu' "rigorosi" gia' avevano operatori distinti per la somma e la
concatenazione, p. es. il Basic IBM della classe 51xx (anni Settanta) come
concatenatore usava la "pipe" (o la doppia "pipe"?... non ricordo!) e non
prevedeva l'alternativa del piu'.
Ciao.
Maurizio

 wrote in message 863k52$rv5$3...@nslave1.tin.it...
