首先你想对字段操作后指望他生成事件,望穿秋水也没戏。需要用方法、属性处理 即 private string _Data; public string Data { get [ ret _Data; ] set { _Data=value; ActivateEvent(....) //这里可以使用自定义的delegate,也可以使用eventhandler等等。 } }
private string _Data; public string Data { get [ ret _Data; ] set { BeforeChange(....) _Data=value; AfterChange(....) } } 就这么简单
面向对象编程是另一个范畴的事情,当然事件处理是基本功之一,但更重要的是统筹设计的能力,这点上讲,把脑袋钻到代码里一辈子也无法领会面向对象的精髓,需要更好的了解对象建模相关的知识,建议你读读Generating Code from the Visio Model(wrox)(可以在我的资源里找到)及Craig Larman 的UML和模式应用(Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development )
如果想在修改前判断阻止修改可以:private string _Data; public string Data { get [ ret _Data; ] set { if( BeforeChange(value)) { _Data=value; AfterChange(....) } } private bool BeforeChange(string v) { bool rst=false; if(BeforeChangeCallBack!=null) rst=BeforeChangeCallBack(v); return rst; }
}
etudiant6666: 谢谢你的耐心教导, 或许真的要改那个string data 的set get 才能在 中途拦断 ,潜入代码。 面向对象的能力,或许我要好好想想, 不真,可能,我对 类-对象 的理解达不到你那个竟界 才会很耗脑子的。希望: 你能再次 解释一下,你对 类-对象的个人见解, 谢谢了!!
即 private string _Data;
public string Data
{
get
[
ret _Data;
]
set
{
_Data=value;
ActivateEvent(....) //这里可以使用自定义的delegate,也可以使用eventhandler等等。
}
}
如果我是想滥视一个东东用没有变化,当然这个东东 是Public 的,谁都可以改
很多object 都会用到它,改变它的值。 但是它的值改变前,后,要触发一个事件,能行吗?
private string _Data;
public string Data
{
get
[
ret _Data;
]
set
{
BeforeChange(....)
_Data=value;
AfterChange(....)
}
}
就这么简单
面向对象编程是另一个范畴的事情,当然事件处理是基本功之一,但更重要的是统筹设计的能力,这点上讲,把脑袋钻到代码里一辈子也无法领会面向对象的精髓,需要更好的了解对象建模相关的知识,建议你读读Generating Code from the Visio Model(wrox)(可以在我的资源里找到)及Craig Larman 的UML和模式应用(Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development )
public string Data
{
get
[
ret _Data;
]
set
{
if( BeforeChange(value))
{
_Data=value;
AfterChange(....)
}
}
private bool BeforeChange(string v)
{
bool rst=false;
if(BeforeChangeCallBack!=null)
rst=BeforeChangeCallBack(v); return rst;
}
}
谢谢你的耐心教导,
或许真的要改那个string data 的set get 才能在 中途拦断 ,潜入代码。
面向对象的能力,或许我要好好想想,
不真,可能,我对 类-对象 的理解达不到你那个竟界 才会很耗脑子的。希望:
你能再次 解释一下,你对 类-对象的个人见解,
谢谢了!!
http://blog.sina.com.cn/louisding988