等价于函数 String$() VB.Net?

Equivalent of function String$() VB.Net?

我正在将应用程序从 VB6 迁移到 VB.Net,它使用 String$() 函数。

我的问题是:下面代码中VB6 String$()的"equivalent"是哪个?

Dim Symbol As String=""
Dim iRet As Long
iRet = GetLocaleInfo(LCID, LOCALE_SCURRENCY, lpLCDataVar, 0)
Symbol = String$(iRet, 0)

注意String$()是returns指定长度的重复字符串的函数:

Syntax:

String$(number, character)

number Length of the returned string.

character Required. Character code specifying the character or string expression whose first character is used to build the return string.

(reference)

如果我要删除 $,它会给我错误提示 "String" 是一个 Class 并且不能用作表达式

该代码似乎正在获取一种文化的货币符号(和小数点分隔符)。最好用.NET方法来写,而不是在.NET中使用VB6的半途而废

例如,

Imports System.Globalization

Module Module1

    Sub Main()
        Dim lcid = 2057
        Dim ci As New CultureInfo(lcid)
        Console.WriteLine(ci.EnglishName)
        Console.WriteLine(ci.NumberFormat.CurrencySymbol)
        Console.WriteLine(ci.NumberFormat.NumberDecimalSeparator)

        Console.ReadLine()

    End Sub

End Module

产出

English (United Kingdom)
£
.

CultureInfo Class 的文档中有更多信息。

String$(在较旧的 BASIC 中)等价于 StrDup(VB.NET)。

所以,在你的情况下:

Symbol = StrDup(iRet, Chr(0))

This String constructor 是创建包含特定字符的特定数量的 String 的正确方法,例如

Dim c = "0"c
Dim count = 10
Dim str As New String(c, count)