为什么我们的eventhandler或成员变量在asp.net代码隐藏中被声明为受保护?
这很有效。
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (rdlOther.Checked)
pnlOther.Visible = true;
else
pnlOther.Visible = false;
}
但这不是,
private void btnSubmit_Click(object sender, EventArgs e)
{
if (rdlOther.Checked)
pnlOther.Visible = true;
else
pnlOther.Visible = false;
}
答案 0 :(得分:3)
请参阅Access Modifiers (C# Programming Guide)
可以限制类和结构,以便只有程序或 它们声明的命名空间可以使用它们。班级成员可以 限制,以便只有派生类可以使用它们,或限制使用它们 只有当前命名空间或程序中的类才能使用 他们。访问修饰符是添加到类,结构或者的关键字 成员声明以指定这些限制。那些关键词是 公共,私人,受保护和内部。
看看其中两个级别,我们可以得到他们的定义:
私人会员只能在班级的主体内访问 声明它们的结构
受保护的成员可在其类中和派生中访问 类。
我正在处理的default.aspx页面的示例:
<%@ Page Title="Store Price Management - Home Page" Language="C#" MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
和相应的.cs文件:
public partial class _Default : System.Web.UI.Page
{
// /stuff here
}
如果查看aspx页面,您会看到aspx页面继承(来自).cs文件中定义的类。
因此,为了让Default.aspx(继承类_Default)访问成员,必须使用至少受保护的访问级别进行标记。公共工作也是如此。