我正在将一个应用程序从VB6迁移到VB.Net,其中使用的是 String$() 函数。
我的问题是:哪个是VB6的 "等价物" String$() 在以下代码中?
Dim Symbol As String=""
Dim iRet As Long
iRet = GetLocaleInfo(LCID, LOCALE_SCURRENCY, lpLCDataVar, 0)
Symbol = String$(iRet, 0)
请注意 String$()
是返回指定长度的重复字符串的函数。
语法:
String$(number, character)
number
返回字符串的长度。
character
必填。指定字符或字符串表达式的字符代码,其第一个字符用于构建返回字符串。
(参考)
如果我将删除 $
,它会给我错误的 "String "是一个类,不能用作表达式。.
这段代码似乎是在获取文化的货币符号(和小数分隔符)。最好是用.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
产出
英文(联合王国)£。
在文件中,有更多的信息。文化信息类.
这个 String
构造者 是正确的创建方式。String
含有一个特定数字的特定字符,例如。
Dim c = "0"c
Dim count = 10
Dim str As New String(c, count)
相当于 字符串$ (在旧的BASIC中)是 StrDup (VB.NET)。
所以,在你的情况下。
Symbol = StrDup(iRet, Chr(0))