堆栈克隆问题:.NET错误或预期的行为?

时间:2011-08-08 21:08:20

标签: .net vb.net

克隆堆栈时我遇到了这个问题...不确定它是.NET错误还是预期的行为。意见?

Dim myStack As New Stack(Of Integer)({2,1,3})
Response.Write(String.Join(",",myStack.Clone) & "<br>" & String.Join(",",myStack.Clone.Clone))

输出:

2,1,3
3,1,2 <- I expected 2,1,3

1 个答案:

答案 0 :(得分:8)

这不是.Net Bug。 Stack(Of T)类型不具有Clone方法或属性。以下代码演示了这一点,该代码无法在标准VB.Net控制台项目上编译

Dim stack As New Stack(Of Integer)({2, 1, 3})
Console.WriteLine(String.Join(",", stack.Clone))

绑定的Clone方法必须是项目中某处定义的扩展方法。错误或设计行为就在那里。