VB.NET-StrDup不能正常工作?
据我所知,此代码:VB.NET-StrDup不能正常工作?,vb.net,string,Vb.net,String,据我所知,此代码: Microsoft.VisualBasic.StrDup(3, "123") 应返回123123。相反,它返回111,就好像它使用了错误的重载StrDup(接受char)。如果这是设计的,是否有任何内置函数也可以这样做?根据MSDN,只拾取第一个字符,而不管您是指定字符还是字符串: 字符-必填。任何有效的字符、字符串或对象表达式。 将仅使用表达式的第一个字符。如果字符 是Object类型,它必须包含字符或字符串值 对字符串执行StrDup的最佳方法是: String.Joi
Microsoft.VisualBasic.StrDup(3, "123")
应返回123123
。相反,它返回111
,就好像它使用了错误的重载StrDup
(接受char
)。如果这是设计的,是否有任何内置函数也可以这样做?根据MSDN,只拾取第一个字符,而不管您是指定字符还是字符串:
字符-必填。任何有效的字符、字符串或对象表达式。
将仅使用表达式的第一个字符。如果字符
是Object类型,它必须包含字符或字符串值
对字符串执行StrDup的最佳方法是:
String.Join("", Enumerable.Repeat("123", 3))
根据设计,“只使用表达式的第一个字符。”这甚至在intellisense中也有记录,“只使用表达式的第一个字符…”Tim:我想知道,intellisense可能没有更新。从逻辑上讲,如果您知道只使用第一个字符,则不应传递字符串。如果你这样做,可维护性就会受到影响。关于它添加的语法糖分-手动获取
字符串的Char
并不难,比如:mystring(0)
或mystring.Chars(0)
,为了清晰起见,使用它。老实说,在使用VB.NET时根本不应该使用那些旧的VB函数。@Tim:200%同意,StrDup
是我通过谷歌搜索发现的东西,我认为它会起作用。顺便说一句,它StrDup
实际上是这样做的:返回新字符串(字符[0],数字)代码>(通过ILSpy
反映)。因此,它不是一个旧的VB函数,因为它使用重复一个字符n次的。但是,如果需要重复字符串,那么我将直接使用构造函数或您的可枚举方法。