十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在asp.net中应用静态变量要比application更好的选择
庐山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
在传统的asp页面中,我们需要利用application变量传递一些特殊变量,在asp.net中任何页面都可以是类,,Global.asax也不例外。
我们只需要在Global.asax加入类名。
%@ Application Classname="MyGlobals" %
然后我们定义几个静态变量。
在vb.net中应用shared
在C#中应用static
VB:
Script language="vb" runat="server"
Public Shared sGreeting as String = "welcome"
/Script
C#
Script language="C#" runat="server"
Public Static String sGreeting = "welcome"
/Script
现在我们在其他的asp.net叶面就可以应用类名.变量名就可以在引用他了。
x = MyGlobals.sGreeti
可以实现,类里面的字段或者方法加Shared
Public Class Form1
'下面实现静态类
Public Class test
Shared Sub New()
End Sub
Public Shared Sub run()
MsgBox("测试run")
End Sub
End Class
'下面测试
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'并没有实例化一个类哦
test.run()
End Sub
End Class
1.不正确
Dim abc As myClass,定义一个可以引用myClass类型对象的变量abc。这个abc变量存在于栈上。
abc=New myClass。New myClass创建myClass实例对象,这个对象存在于托管堆上。然后(同时)让abc引用(指向)这个对象。
abc变量在栈上,而对象在托管堆上。
abc储存的是对象的地址,而不是对象本身。
看下面的代码
Dim a As myClass,b As myClass,c As myClass
a=New myClass
b=a
c=a
整个过程中只创建了一个myClass对象,位于托管堆上。
三个myClass类型的变量a、b、c位于栈上,都指向了这一个myClass对象
2.类的成员分 实例成员 和 静态成员
实例成员 必须在实例对象上调用
静态成员 可以直接调用,不需要实例对象。