C#类的定义有属性,属性的set写入器问题。
有个例子:
class Customer
{
private _name;
……
public string Name
{
……
set
{
if (Sting.IsNullOrEmpty(value.Trim())
{
throw new ArgumentExcept("Name can't be null!");
}
else
{
Name=value;
OnNameChanged(EventArgs.Empty);}
}
}
}
解释一下OnNameChanged的作用原理什么的。
答案满意给100分。
有个例子:
class Customer
{
private _name;
……
public string Name
{
……
set
{
if (Sting.IsNullOrEmpty(value.Trim())
{
throw new ArgumentExcept("Name can't be null!");
}
else
{
Name=value;
OnNameChanged(EventArgs.Empty);}
}
}
}
解释一下OnNameChanged的作用原理什么的。
答案满意给100分。
解决方案 »
- 求助 如何设置一个线程在一个制定周期内的指定时间实现方法
- C#中Button如何POST表单至另一页面
- win7下:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序
- 如何写服务啊。急急急急急急急急急急急急急急!!!!!!!!!!!!!!!!!
- 关于excel数据的导入与导出
- 〓〓〓 如何让Microsoft.Web.UI.WebControls.TreeView 响应 服务端事件?
- vs2010 + .net4.0 仿QQ2013 登录界面 免积分源码下载
- gridview中的textbox获得焦点问题
- Net view 的默认超时怎么设置?
- c#如何实现既能选择目录,又能选择文件的openfiledialog?
- 如何ALT+Tab
- C# 对oralce数据库的备份和还原 在线等
protected virtual void OnTextChanged()
{
if(this.TextChanged!=null)
this.TextChanged(this,EventArgs.Empty);
}
触发TextChanged事件
调用this.OnTextChanged();
代码里肯定有定义的地方。并且有注册事件的地方。这里的操作会出发这个事件,在注册事件的地方有该事件发生所出发的处理方法。
Customer cust = new Customer();cust.Name="abc";
就会触发事件。有篇文章同这个很相似:
http://www.csharphelp.com/2006/08/net-event-handling-using-the-template-method-design-pattern/
{
get { return name; }
set { name = value; OnNameChanged(); }
}private void OnNameChanged()
{
// If there are registered clients raise event
if (NameChanged != null)
NameChanged(this, new EventArgs());
}