一个vb.net的基础题

lin364653705 2010-09-09 12:18:23
直接上代码
public String test(){
int i=0;
String str="a_b_c";
String arr[]=str.Split('_');
return arr[i++]+ arr[i++] + arr[i++];
}

在C#中,这样写的话,可以直接返回abc的组合字符串
public function test() as String
dim str as string = "a_b_c"
dim i as Integer = 0
dim arr() as string = str.Split("_")
return arr(++i)+ arr(++i) + arr(++i)
'return arr(i=i+1)+ arr(i=i+1) + arr(i=i+1) '这种写法也不行返回aaa
end function

这里返回的aaa,意思是i的值一直都是0,用i++报错
语言不一样,会有所不同!但是我想知道在VB.NET中,怎么实现++的这种写法???
...全文
175 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
a8lquattro 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 lin364653705 的回复:]
直接上代码


C# code
public String test(){
int i=0;
String str="a_b_c";
String arr[]=str.Split('_');
return arr[i++]+ arr[i++] + arr[i++];
}

在C#中,这样写的话,可以直接返回abc的组合字符串

……
[/Quote]

public function test() as String
dim str as string = "a_b_c"
dim i as Integer = 0
dim arr() as string = str.Split("_")
str=""
for i to arr.Length -1
str=str.insert(str.length,arr(i))
next
end function

我觉得尽量用类的方法去实现比较好,我也是新手。这个正好刚研究过。string类的insert方法可以做到你要的效果
lxq19851204 2010-09-09
  • 打赏
  • 举报
回复

Public Function test() As String
Dim str As String
Dim i As Integer
Dim arr() As String

str = "a_b_c"
i = 0
arr() = Split(str, "_")
For i = 0 To Len(Replace(str, "_", "")) - 1
test = test + arr(i)
Debug.Print t
Next i

End Function
lin364653705 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyazhe 的回复:]
如果这样,那迭代器更合适。如果要传递多个你不如直接传数组进去了。
other(arr,star_index,length)
[/Quote]

汗。。。。
兔子-顾问 2010-09-09
  • 打赏
  • 举报
回复
如果这样,那迭代器更合适。如果要传递多个你不如直接传数组进去了。
other(arr,star_index,length)
lin364653705 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyazhe 的回复:]
VB.NET code
public sub other(byval para1 as string,byval para2 as string,byval para3 as string....)
end sub
[/Quote]
比喻说这是另一个方法,里面的参数的值就是String str="a_b_c_......"通过split("_")后获得的数组的值。长度可能很多。。other(arr(0),arr(1),arr(2)......),这里,我只是想用i++,来传递这split后的数组的值。。
兔子-顾问 2010-09-09
  • 打赏
  • 举报
回复
Public Function test() As String
Dim str As String = "a_b_c"
Return str.Replace("_", "")
End Function
兔子-顾问 2010-09-09
  • 打赏
  • 举报
回复
还真没觉得你这种写法比较简单。
lin364653705 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
这种可读性差的写法,还是不要了也罢。最不喜欢看到++i,i++滥用的,除非语义明确,否则还是慎用,虽然不复杂,但阅读你代码的人要小心,谁也不知道会不会一个不小心看错++i和i++导致维护时候没理解原意弄出问题。
[/Quote]
这里String str="a_b_c";实际上是传递的参数字符串,按照一定规则组合的!
我只是将其解析,然后传递到别一个方法中去,只是想通过这种方法,传递参数的时候,只要个数相同就可以! 也可以直接写arr(0),arr(1),arr(2),这只是想要种简单的写法,而且也是为了弄明白,vb.net里面怎样来实现下++种,不要扯到其他地方去了
lin364653705 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxq19851204 的回复:]
VB code

Public Function test() As String
Dim str As String
Dim i As Integer
Dim arr() As String

str = "a_b_c"
i = 0
arr() = Split(str, "_")
For i = 0 To Len(Replace(str, "_……
[/Quote]
不需要你写的For循环呢
兔子-顾问 2010-09-09
  • 打赏
  • 举报
回复
这种可读性差的写法,还是不要了也罢。最不喜欢看到++i,i++滥用的,除非语义明确,否则还是慎用,虽然不复杂,但阅读你代码的人要小心,谁也不知道会不会一个不小心看错++i和i++导致维护时候没理解原意弄出问题。
lxq19851204 2010-09-09
  • 打赏
  • 举报
回复
好像++i这种类型的只有C,C#,C++支持吧。VB.NET好像不支持这种写法。

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧