关于控件及其访问修饰符
本文关键字:访问 于控件 控件 | 更新日期: 2023-09-27 18:27:30
我总是看到,每当我们在设计图面上拖动任何控件时,它的访问修饰符都会受到保护。。。。为什么它被默认保护。。。为什么不是私人或公共的。
我很少从几个人那里得到答案
1) 由于受保护的访问修饰符的作用域,正如我们所知,受保护的成员可以从声明它的类中访问,也可以从声明该成员的类派生的任何类中访问。我们知道每个.net控件在内部都是一个类。只有通过派生类类型进行访问时,基类的受保护成员才能在派生类中访问。
2) 由于代码隐藏和aspx.cs文件之间的继承性,它受到保护。如果你不想让它被继承,你可以把它变成私人的或密封的
3) 我认为你指向正确的方向。。。。u plzz是否提供了一个示例代码,只是为了显示aspx和代码隐藏之间的关系,以及受保护修饰符的使用,这一点很重要。
没有给出详细的答案。因此,请详细告诉我,由于任何控件的访问修饰符受到保护,存在什么样的关系?
通常,当ASP.NET编译aspx页面时,生成的页面类从代码隐藏类继承。实例化实际控件并构建控件树的代码驻留在生成的类中。由于这种关系,设计器默认情况下会将protected
作用域分配给在designer.cs文件中声明的控制变量(本质上与代码隐藏类相同)。由于受保护的作用域,这些变量在实际的页面类(由ASP.NET编译器生成)中可以访问,因此页面类代码实际上可以将它们初始化为正确的控制实例。
公共作用域也可以工作,但它违反了封装,因为通常不需要在页面类之外引用页面上的控制实例。private
作用域将不起作用,因为这意味着控制变量只能在代码隐藏类中访问,因此页面类(从代码隐藏类派生)无法将变量设置为控制实例。在这种情况下,您会发现控制变量在代码隐藏类中具有null值。