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

问题描述 投票:0回答:3

我正在将一个应用程序从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 "是一个类,不能用作表达式。.

Check error into Image

vb.net vb6 migration
3个回答
1
投票

这段代码似乎是在获取文化的货币符号(和小数分隔符)。最好是用.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

产出

英文(联合王国)£。

在文件中,有更多的信息。文化信息类.


4
投票

这个 String 构造者 是正确的创建方式。String 含有一个特定数字的特定字符,例如。

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

3
投票

相当于 字符串$ (在旧的BASIC中)是 StrDup (VB.NET)。

所以,在你的情况下。

Symbol = StrDup(iRet, Chr(0))
© www.soinside.com 2019 - 2024. All rights reserved.