2011-12-01 11 views

Odpowiedz

29

Stary Typ zgłaszający - see this

Niektóre inne stare:

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

nadal istnieją w VB .Net ze względu na kompatybilność wsteczną ...

+2

Dla kompletności [MSDN Link] (http://msdn.microsoft.com/en-us/library/s9cz43ek % 28v = VS.100% 29.aspx). –

+1

To, do czego się odwołujesz, to Type Type, które powodują, że dim s $ i dim s jako ciąg znaków są takie same. Zobacz odpowiedź Heinziego. – dbasnett

23

W "klasycznym" VB istnieją dwie wersje wbudowanych funkcji ciągowych. Pozwól mi używać Left jako przykład:

  • Left(s, length) zajmuje wariant jako pierwszy parametr i zwraca wariant.
  • Left$(s, length) przyjmuje ciąg jako pierwszy parametr i zwraca ciąg.

To rozróżnienie nadal istnieje we współczesnym VBA.

Podejrzewam, że powodem tego jest to, że łańcuchy w VBA nie mogą być Null (zauważ, że Null <> ""). Tak więc, gdy mamy do czynienia z zerowymi polami bazy danych, trzeba użyć zmiennych wariantowych. Zmienne Zmienne mogą przyjmować dowolną wartość, w tym wszystkie wartości całkowite (łańcuchy, liczby całkowite, ...), a także niektóre specjalne wartości, takie jak Null, Empty lub Missing. Funkcje inne niż $ pozwoliły używać wariantów jako danych wejściowych i uzyskać warianty jako dane wyjściowe. Na przykład Left(Null, ...) zwraca Null.

W VB.NET rozróżnienie to nie jest już konieczne: funkcje inne niż $ działają dokładnie tak samo, jak funkcje $, które są zachowywane tylko dla zgodności wstecznej ze starym kodem.

6

Co Heinzi powiedział i wyjaśnić działalność typu znaków

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

    Dim r As String 
    Stop 

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