VB.NET-StrDup无法正常工作?

Neo*_*isk 2 vb.net string

据我了解,这段代码:

Microsoft.VisualBasic.StrDup(3, "123")
Run Code Online (Sandbox Code Playgroud)

应该回来123123123。相反,它返回111,就好像它正在错误地重载StrDup(接受char)。如果这是设计使然,是否有任何内置功能可以做到这一点?

Neo*_*isk 5

根据MSDN,StrDup无论您指定a Char还是a ,都仅选择第一个字符String

字符-必填。任何有效的Char,String或Object表达式。仅使用表达式的第一个字符。如果Character是Object类型的,则它必须包含Char或String值。

StrDup字符串的最佳方法是:

String.Join("", Enumerable.Repeat("123", 3))
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,它`StrDup` 实际上是这样做的:`return new string(Character[0], Number);`(通过`ILSpy` 反映)。因此它不是_old_ VB 函数,因为它使用 [`.NET 字符串构造函数`](http://msdn.microsoft.com/en-us/library/xsa4321w.aspx) 重复字符 n 次。但是,如果您需要重复字符串,我将直接使用构造函数或您的“Enumerable.Repeat”方法。 (2认同)