Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET-StrDup不能正常工作?_Vb.net_String - Fatal编程技术网

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次的。但是,如果需要重复字符串,那么我将直接使用构造函数或您的
可枚举方法。