DotNet慎用Shared方法

听海的水兵

听海的水兵

2016-01-29 12:40

DotNet慎用Shared方法,DotNet慎用Shared方法

我们先来看一段代码,可以直接CP下来在VB.Net下调试查看结果
Namespace Test Public Class Father Friend Shared _x As Integer = 1 Public Sub New() End Sub End Class Public Class Child Inherits Father Public Sub New() End Sub End ClassEnd NamespacePrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f1 As New Father Dim c1 As New Child f1._x = 1 MessageBox.Show("Father Class 's Shared Attribues X Has Been Modify to:" + f1._x.ToString()) c1._x = 123 MessageBox.Show("Child Class 's Shared Attribues Has Been Modify to:" + c1._x.ToString()) MessageBox.Show("In The End Father Class 's Shared Attribues X Has Been Modify to:" + f1._x.ToString()) End Sub
在这里,父类的Shared属性会被子类影响,因为访问同一内存空间,在MSDN库对Shared是这么解释的
Shared 构造函数初始化类型的 Shared 变量;它们在程序开始执行后先于大多数类型成员引用运行。Shared 构造函数不重载实例构造函数,而且不能进行自身重载。
与实例构造函数不同,Shared 构造函数具有隐式 Public 访问,没有任何参数,而且不能调用其他构造函数。在 Shared 构造函数中的第一个语句之前,Shared 构造函数隐式地执行由类型中声明的 Shared 变量的变量初始值设定项指定的初始化。这对应于一个在进入构造函数后立即执行的赋值序列。变量初始值设定项按它们在类型声明中出现的文本顺序执行。

运行 Shared 构造函数的确切时间基本上是由实现决定的,但需要满足以下几个条件: Shared 构造函数在创建类型的任何实例之前运行。 Shared 构造函数在引用类型的共享成员之前运行。 Shared 构造函数在加载任何从类型派生的类型之前运行。 Shared 构造函数不会在单次程序执行过程中运行一次以上。
在 Shared 变量初始值设定项中避免循环引用,因为通常不可能确定包含这些引用的类的加载顺序。
展开更多 50%)
分享

猜你喜欢

DotNet慎用Shared方法

电脑网络
DotNet慎用Shared方法

dotNET下面调用Access中存储过程的方法

电脑网络
dotNET下面调用Access中存储过程的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

照顾新生儿 慎用老方法

新生儿护理 新生儿 新生儿呵护
照顾新生儿 慎用老方法

Shared Voice海报设计作品

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
Shared Voice海报设计作品

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

男婴慎用纸尿裤

新生儿护理 新生儿 新生儿呵护
男婴慎用纸尿裤

黄芪进补亦须慎用

生活常识 养生 健康
黄芪进补亦须慎用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Flash鼠绘着色入门教程

Flash鼠绘着色入门教程

Web标准发展建议与好的实例之结构与表现

Web标准发展建议与好的实例之结构与表现
下拉加载更多内容 ↓