C# 共享/静态变量只能是Isn';什么给你?
我有以下代码:C# 共享/静态变量只能是Isn';什么给你?,c#,.net,vb.net,C#,.net,Vb.net,我有以下代码: Public Class TestClass Public Sub Main() If theGlobal IsNot Nothing Then Throw New Exception("What gives!") End Sub Private Shared theGlobal As Object = Nothing Private Shared ReadOnly Property Global Get
Public Class TestClass
Public Sub Main()
If theGlobal IsNot Nothing Then Throw New Exception("What gives!")
End Sub
Private Shared theGlobal As Object = Nothing
Private Shared ReadOnly Property Global
Get
If theGlobal Is Nothing Then
theGlobal = New Object()
End If
Return theGlobal
End Get
End Property
End Class
我被难住了。。。为什么全局对象不是什么都没有?我想你的意思是
If Global Is Nothing Then Throw New Exception("What gives!")
您必须根据您的代码访问要初始化的字段的全局属性。假设这确实是您的代码,我猜您正在调试器中使用断点运行此操作,并且监视窗口正在评估属性,该属性正在初始化
全局
只是一个猜测,根据我以前在类似情况下看到的情况
如果这没有帮助,请尝试编写一个简短但完整的控制台应用程序,该应用程序可以重现问题,并且我们都可以运行。能否显示运行Test()方法的代码?具体来说,在这段代码之前的一切都很好。这段代码没有意义。简单更改为Private Shared theGlobal As Object=New Object(),并删除全局部分是否可以解决所有问题。这是一段愚蠢的代码,只是为了重现这种情况。但是@Jon是对的,我在调试器中,在我的“Watch”窗口中我有属性-只是没有意识到,因为Watch窗口是隐藏的,我正在查看“Locals”和“Immediate”窗口。不,他的问题是,如果他不访问属性,他希望它什么都没有。。。但不是,你这个男人!花了两个小时想弄清楚到底发生了什么。。。一直在“监视”窗口中的财产。。。啊!