web-dev-qa-db-ja.com

vb.netのメソッド名の後のドル記号の意味は何ですか

vb.netのメソッド名の後のドル記号の意味は何ですか

このような:

Replace$("EG000000", "0", "")
33
user288916

古いタイプの通知子- これを参照

他のいくつかの古いもの:

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

下位互換性のためにVB.Netにはまだ存在しています...

36
Leon

「クラシック」VBには、組み込みの文字列関数の2つのバージョンがありました。例としてLeftを使用しましょう。

  • Left(s, length)は、最初のパラメーターとしてvariantを取り、variantを返します。
  • Left$(s, length)は、最初のパラメーターとしてstringを取り、stringを返します。

この区別は、現代のVBAにもまだ存在しています。

この背後にある理由は、VBAの文字列をNullにすることはできないためだと思います(_Null <> ""_に注意してください)。したがって、null許容データベースフィールドを処理するときは、バリアント変数を使用する必要がありました。 Variant変数は、すべての整数値(文字列、整数など)だけでなく、NullEmptyなどの特別な値を含む任意の値を取ることができます。またはMissing。 $以外の関数を使用すると、バリアントを入力として使用し、バリアントを出力として取得できます。たとえば、Left(Null, ...)Nullを返します。

VB.NETでは、この区別は不要になりました。$以外の関数は、古いコードとの下位互換性のためにのみ保持される$関数とまったく同じように機能します。

23
Heinzi

ハインジが言ったこととタイプキャラクタービジネスを片付けるために

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

    Dim r As String
    Stop

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