日期:2014-05-16  浏览次数:20477 次

按钮触发函数为什么一般使用protected修饰?
按钮触发函数为什么一般使用protected修饰?
例如:
protected void Button1_Click(object sender, EventArgs e){}

------解决方案--------------------
好好了解一下 public protected private
------解决方案--------------------
protected可以被子类访问,便于继承,如果不考虑继承,private也行,谁也别想访问

------解决方案--------------------
因为这些方法是给页面对象自己内部调用或者派生类访问的,不对外公开。

我见你3楼那问为什么不用私有,确实如你所说,就是为了照顾到派生类。

如果把访问权限放大,会有风险,比如放到interal,或者直接public

你可以自己试一下,多个.aspx文件,可以同时指向同一个.aspx.cs文件的,同理,多个页面按钮控件,如多个Button控件的click事件,是可以同时指向一个 protected void Button1_Click(object sender, EventArgs e){}

所以,设置为保护的,是有想法的,普通页面对象,是可以让你派生的,你在派生页面中,同时继承相应的按钮控件,这时候子页面对象内部可以调用这些受保护的方法。

但比如,母版页时,就有风险,我们在内容页面对象中,可以通过母版页属性获取当前内容页的母版页的对象,但是,我们知道,内容页是不会继续母版页的按钮控件的,所以,假如,我们的母版页中的protected void Button1_Click(object sender, EventArgs e){}改成public,那么,当我们通过母版页属性获取当前内容页的母版页的对象后,尝试使用母版页对象去调用protected void Button1_Click(object sender, EventArgs e){},这时候就完蛋了。