我试图列出所有星期一和他们的日期,比方说,2014年.我不知道下面的代码有什么问题(可能是循环).当我执行这些程序时,程序崩溃.
Dim d1 As DateTime = #1/1/2014#
Dim d2 As DateTime = d1.AddDays(-(d1.DayOfWeek - DayOfWeek.Monday))
Do
ListBox1.Items.Add(d2.ToString("MMM - dd - yyyy ddd"))
d2.AddDays(7)
Loop While (d2.Year < 2015)
Run Code Online (Sandbox Code Playgroud)
一个DateTime实例是不可变的,这意味着它不能被改变.该d2.AddDays(7)表达式创建一个具有不同值的新实例,您可以将其分配回d2:
d2 = d2.AddDays(7)
Run Code Online (Sandbox Code Playgroud)
那么为什么你的程序会崩溃?由于日期永远不会改变,因此它永远不会达到2015年,并且您的程序将尝试向列表框添加无限多个项目.显然,在发生这种情况之前你会耗尽内存,这会导致程序崩溃.
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |