为什么我们的eventhandler或成员变量在asp.net代码隐藏中被声明为受保护

时间:2012-04-03 18:52:26

标签: asp.net

为什么我们的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;
}

1 个答案:

答案 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)访问成员,必须使用至少受保护的访问级别进行标记。公共工作也是如此。