2011-12-01 17 views

risposta

29

Vecchio tipo notificatore - see this

Alcuni altri quelli vecchi:

& -> Long 
% -> Integer 
# -> Double 
! -> Single 
@ -> Decimal 
$ -> String 

esistono ancora in VB .Net per motivi di compatibilità con le versioni precedenti ...

+2

Per ragioni di completezza, il [MSDN Link] (http://msdn.microsoft.com/en-us/library/s9cz43ek % 28V = VS.100% 29.aspx). –

+1

Quello a cui si fa riferimento è Type Characters, che rende dim s $ e dim s as stringhe uguali. Vedi la risposta di Heinzi. – dbasnett

23

In "classico" VB, c'erano due versioni delle funzioni integrate nella stringa. Permettetemi di usare Left come esempio:

  • Left(s, length) prende un variante come primo parametro e restituisce una variante .
  • Left$(s, length) prende una stringa come primo parametro e restituisce una stringa .

Questa distinzione esiste ancora nella VBA di oggi.

Sospetto che la ragione di questo sia che le stringhe in VBA non possono essere Null (notare che Null <> ""). Pertanto, quando si gestiscono campi del database nullable, è necessario utilizzare variabili varianti. Le varianti possono assumere qualsiasi valore, inclusi tutti i valori interi (stringhe, numeri interi, ...) nonché alcuni valori speciali come Null, Empty o Missing. Le funzioni non $ ti hanno permesso di usare le varianti come input e ottenere le varianti come output. Ad esempio, Left(Null, ...) restituisce Null.

In VB.NET, questa distinzione non è più necessaria: le funzioni non $ fanno esattamente la stessa cosa delle funzioni $, che vengono mantenute solo per compatibilità con il vecchio codice.

6

Cosa Heinzi detto e per chiarire il tipo di carattere commerciale

Dim s$ = "FooBar" 'dim s as String = "FooBar" 

    Dim r As String 
    Stop 

    r = Replace$(s, "Bar", "") 
    '.Net equivalent 
    r = s.Replace("Bar", "") 
Problemi correlati