现有一个类:
定义了一个属性:SqlStr
class A{
protected string msSqlStr; public string SqlStr{
get{return this.msSqlStr;}
set{
this.msSqlStr=value;
}
}再定义一个类,继承A类
class B:A{
private void F()
{
} //假设以下代码正确,要实现的结果如下
protected override set(){
this.F();//执行需要的代码
base.set();//执行原来的set方法中的代码
}
}在B类中,我想重载A类中属性SqlStr的set方法,实现当A类中的set事件触发时,能执行B类中的一段代码,然后载返回执行A类中的set事件本身要处理的代码
请问应该怎么做?
定义了一个属性:SqlStr
class A{
protected string msSqlStr; public string SqlStr{
get{return this.msSqlStr;}
set{
this.msSqlStr=value;
}
}再定义一个类,继承A类
class B:A{
private void F()
{
} //假设以下代码正确,要实现的结果如下
protected override set(){
this.F();//执行需要的代码
base.set();//执行原来的set方法中的代码
}
}在B类中,我想重载A类中属性SqlStr的set方法,实现当A类中的set事件触发时,能执行B类中的一段代码,然后载返回执行A类中的set事件本身要处理的代码
请问应该怎么做?
protected string msSqlStr; public virtual string SqlStr{
get{return this.msSqlStr;}
set{
this.msSqlStr=value;
}
}class B
{
public override string SqlStr{
get{return base.msSqlStr;}
set{
... }
}
public class A{
private string msSqlStr; public virtual string SqlStr
{
get { return this.msSqlStr; }
set
{
this.msSqlStr = value;
}
}
} public class B : A
{
public override string SqlStr
{
get
{
return base.SqlStr;
}
set
{
Console.WriteLine("BB");
base.SqlStr = value;
}
}
}
private string msSqlStr;public virtual string SqlStr
{
get { return this.msSqlStr; }
set
{
this.msSqlStr = value;
//do something else
}
}
}
在B类中是否也要写:
set
{
Console.WriteLine("BB");
base.SqlStr = value;
//do something else
}能不能在B类中不用在写
//do something else
让其在A类中执行