一段让VS编译器抽风的代码!

huaxiamengqing 2013-01-24 12:00:51
最近在搞一些算法,需要一个全排列的算法。的确写出来,代码如下

Public Sub Permutation(pre As List(Of Int16), Slist As List(Of Int16), outlist As List(Of List(Of Int16)))
If Slist.Count = 1 Then
Dim Mrang As New List(Of Int16)
Mrang.AddRange(pre)
Mrang.AddRange(Slist)
outlist.Add(Mrang)
Return
End If
For i As Int16 = 0 To Slist.Count - 1
Dim Mint16 As Int16 = Slist(i)
Dim Mprelist As New List(Of Int16)
Mprelist.AddRange(pre)
Mprelist.Add(Mint16)
Dim MSlist As New List(Of Int16)
MSlist.AddRange(Slist)
MSlist.RemoveAt(i)
Permutation(Mprelist, MSlist, outlist)
Next
End Sub

感觉泛型真好使。测试代码如下

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Slist As New List(Of Int16)
For i As Int16 = 1 To 4
Slist.Add(i)
Next
Dim Mpre As New List(Of Int16)
Dim Moutlist As New List(Of List(Of Int16))
Permutation(Mpre, Slist, Moutlist)
Dim sb As New System.Text.StringBuilder

For Each li As List(Of Int16) In Moutlist

For Each mint As Int16 In li
sb.Append(mint)
Next
sb.Append(vbCr)
Next
Debug.Print(sb.ToString)
End Sub

一测试OK,获得的全排列很正确。
然后当我运行第二次的时候让我不禁崩溃,无论我改任何代码,结果总是第一次运行的结果。除非我复制代码再打开一个编译器--,靠,难道内存泄露了?刚才还说泛型好用呢。
究竟是什么原因,请各位高手给鉴定鉴定。
...全文
310 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谁知道你改什么代码了?
种草德鲁伊 2013-03-13
  • 打赏
  • 举报
回复
编译器脑瘫了!
DeepinXi 2013-03-13
  • 打赏
  • 举报
回复
???????????? 没保存吧
Bullatus 2013-03-11
  • 打赏
  • 举报
回复
清理工程再编译试试
fxm7l 2013-01-27
  • 打赏
  • 举报
回复
想看两眼,你的地球转得我眼晕。
一根葱的无奈 2013-01-27
  • 打赏
  • 举报
回复
用using定义试试
51Crack 2013-01-25
  • 打赏
  • 举报
回复
看不懂,乱~

16,554

社区成员

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

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