📄 default3.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default3 : System.Web.UI.Page
{
public class ren
{
protected int yan; //定义人的眼睛数量,别说俺废话哈
protected int shou; //定义手
//定义一个事件
public delegate void RenChengHender(string s,int e); //定义一个委托
public event RenChengHender RenChenged; //定义一个事件
//构造函数
public ren()
{
yan = 1;
shou = 2;
}
public ren(int y,int s)
{
yan = y;
shou = s;
}
//属性
public int Yan
{
get
{ return yan; }
set
{
yan = value;
string s = "yan";
RenChenged(s,value);//如果修改了这个值,将激发事件
}
}
public int Shou
{
get
{ return shou; }
set
{
shou = value;
string s = "shou";
RenChenged(s, value);
}
}
//方法
public string yanjin(int y)
{
switch (y)
{
case 0:
return "做人要厚道,再怎么也该给人一只眼睛撒";
break;
case 1:
return "他还有只眼睛呢??????";
break;
case 2:
return "普通人嘛,没意思";
break;
case 3:
return "难道二郎神有儿子了?";
break;
default:
return "别玩啦,会死人的";
break;
}
}
}
public class man : ren //创建一个继承类
{
private int age;
private string sex;
public man(int a,string s,int y):base(6,888)//实际上,我们在这里使用 : 和 base 完成了子类在初始化时与父类的通信
{
age = a;
sex = s;
yan = y;
}
public string ManRen
{
get
{
return "一个" + sex + "人,他有" + yan + "只眼睛和" + shou + "只手,他今年已经" + age + "岁了";
}
}
public string suibian()
{
return base.Shou.ToString()+","+this.Yan.ToString(); //通过base或者this,访问基类成员
}
public string yanjin(string a,int s)//这里我们为子类编写了一个简单的方法,他与基类中方法是同名的,但是签名不同.所以会被重载
{
return a + "和" + s;
}
//这个方法同基类中的方法名和签名都完全一样
//因为这样做就隐藏了基类的同名方法,假设我们是有意隐藏的,所以使用了new关键字显式隐藏从基类继承的同名方法
public new string yanjin(int y)
{
string bl=base.yanjin(y);//这里我们使用base调用基类的同名方法
return "父类方法被覆写,现在返回的是" + y+"我们调用基类同名方法所得结果为:"+bl;
}
}
protected void Page_Load(object sender, EventArgs e)
{
ren aa = new ren(2, 2);//创建一个ren类的对象
aa.RenChenged += new ren.RenChengHender(aa_RenChenged); //注册一个事件,一旦下面发生则会发生下面的事件
aa.Yan = 3;//赋值,触发事件,结果当为"我还不信,那个有三只眼睛?"
aa.Shou = 2;//触发事件,结果为 "一切正常哈,只有两只手"
Response.Write("<p>眼睛有" + aa.Yan + "只,,手有" + aa.Shou);//打印出来,结果为 "眼睛有3只,,手有2"
Response.Write("<p>方法返回的是:" + aa.yanjin(3)); //调用事件,显示为 "方法返回的是:难道二郎神有儿子了?"
man mrr = new man(23, "男",4);
Response.Write("<p>" + mrr.ManRen); //显示结果为 "一个男人,他有4只眼睛和888只手,他今年已经23岁了"
Response.Write("<p>子类对象调用父类方法返回的是:" + mrr.yanjin(0));
//上面这句结果为"子类对象调用父类方法返回的是:父类方法被覆写,现在返回的是0我们调用基类同名方法所得结果为:做人要厚道,再怎么也该给人一只眼睛撒
Response.Write("<p>子类对象调用父类方法返回的是:" + mrr.yanjin("aa", 5));//返回结果为 "子类对象调用父类方法返回的是:aa和5"
Response.Write("<p>" + mrr.suibian()); //返回结果为 "888,4"
}
void aa_RenChenged(string s,int e)//下面是我们给修改眼睛和手做的一个事件
{
if (s == "yan")
{
if (e == 3)
{
Response.Write("我还不信,那个有三只眼睛?");
}
}
if (s == "shou")
{
if (e == 2)
{
Response.Write("<p>一切正常哈,只有两只手");
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -