Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
.net 本地静态字典崩溃Visual Basic编译器_.net_Vb.net_Visual Studio 2005 - Fatal编程技术网

.net 本地静态字典崩溃Visual Basic编译器

.net 本地静态字典崩溃Visual Basic编译器,.net,vb.net,visual-studio-2005,.net,Vb.net,Visual Studio 2005,以下代码立即使VS2005中的Visual Basic编译器崩溃(至少对于我的环境:Windows 7): 具体来说,在完成定义“dict”(静态、本地字典)的行之后。现在,我已经学会了对在编译器中声明bug持怀疑态度(特别是对于上面这样一组简单的代码),所以我很好奇为什么会发生这种情况。显然,不美观的崩溃是VS2005中的一个限制,但是崩溃是否是由于声明一个静态的通用字典的潜在问题而发生的呢?如中所示,这是一个坏的/非法的VB吗?刚刚找到了答案。字典的定义应该是泛型的。字典(X,Y)而不是(X

以下代码立即使VS2005中的Visual Basic编译器崩溃(至少对于我的环境:Windows 7):



具体来说,在完成定义“dict”(静态、本地字典)的行之后。现在,我已经学会了对在编译器中声明bug持怀疑态度(特别是对于上面这样一组简单的代码),所以我很好奇为什么会发生这种情况。显然,不美观的崩溃是VS2005中的一个限制,但是崩溃是否是由于声明一个静态的通用字典的潜在问题而发生的呢?如中所示,这是一个坏的/非法的VB吗?

刚刚找到了答案。字典的定义应该是泛型的。字典(X,Y)而不是(X,Y)。

刚刚找到了答案。字典的定义应该是通用的。字典(X,Y)而不是(X,Y)。

我可以在这里为好奇的人提供更多关于我的环境的信息。我把它排除在外,因为它与vb代码的合法性没有严格的关系。在vb.NET开发的10多年中,我从未需要过静态局部变量。看看幕后发生了什么:@Tim:我觉得这是一个有用的抽象概念,尽管我对此表示怀疑。不过,就目前情况而言,我需要一个跨方法所有调用的单一数据集,并且该数据集只需要由该方法访问。将其声明为局部静态变量将其范围限制为仅必要的变量,这似乎比将其标记为全局变量更可取。我很感激这个链接though@usr:在此实例中,VS2005崩溃到桌面。'您想将信息发送到“Micrsoft”和所有其他软件吗?@TimSchmelter因此编译器很聪明,可以生成代码。好!!这不是避免使用某个功能的理由。我希望你用闭包?它们在IL中不受支持,因此编译器!与VS 2012中的新异步功能类似。让编译器来完成繁重的工作。您的源代码更短、更简单,您的工作效率也更高。我可以在这里为那些好奇的人提供更多关于我的环境的信息。我把它排除在外,因为它与vb代码的合法性没有严格的关系。在vb.NET开发的10多年中,我从未需要过静态局部变量。看看幕后发生了什么:@Tim:我觉得这是一个有用的抽象概念,尽管我对此表示怀疑。不过,就目前情况而言,我需要一个跨方法所有调用的单一数据集,并且该数据集只需要由该方法访问。将其声明为局部静态变量将其范围限制为仅必要的变量,这似乎比将其标记为全局变量更可取。我很感激这个链接though@usr:在此实例中,VS2005崩溃到桌面。'您想将信息发送到“Micrsoft”和所有其他软件吗?@TimSchmelter因此编译器很聪明,可以生成代码。好!!这不是避免使用某个功能的理由。我希望你用闭包?它们在IL中不受支持,因此编译器!与VS 2012中的新异步功能类似。让编译器来完成繁重的工作。您的源代码更短、更简单,而且您的工作效率也更高。您能否更具体地说明答案是什么,甚至为什么?似乎只是语法问题。导致错误的代码不正确;“Of”太多了。哦,我忽略了:)但这不应该只是一个编译器错误吗?你会想=p似乎是一个非常明显的疏忽有人报告过这个错误吗?您可以通过Microsoft Connect在线报告。你能更具体地回答是什么,甚至为什么吗?似乎只是语法问题。导致错误的代码不正确;“Of”太多了。哦,我忽略了:)但这不应该只是一个编译器错误吗?你会想=p似乎是一个非常明显的疏忽有人报告过这个错误吗?您可以通过Microsoft Connect在线报告。
Public Module foo
    Public Function FUNC() As System.Int32
        Static dict As Generic.Dictionary(Of Int32, Of String)
        Return 0
    End Function
End Module