我创建了一个类,当我通过表单创建一个员工对象时,我想给出一个消息;
这是我的班级,活动和代表
public delegate void ctorDel();
class Employee
{
private int empID;
private string empName;
public event ctorDel myEvent;
public Employee(int empID,string empName)
{
this.empID = empID;
this.empName = empName;
**if (myEvent != null)
{
myEvent();
}**
}
Run Code Online (Sandbox Code Playgroud)
并以形式
int id = Convert.ToInt16(textBox1.Text);
string name = textBox2.Text;
Employee emp = new Employee(id, name);
emp.myEvent += new ctorDel(showMessage);
Run Code Online (Sandbox Code Playgroud)
和功能
public void showMessage()
{
MessageBox.Show("An employee is created");
}
Run Code Online (Sandbox Code Playgroud)
你想要完成的是什么?您尝试过的原因不起作用是因为您在ctor之后附加了您的代表.一旦你打电话给"新员工",事件就会被解雇.
如果您确实需要这样的事件,请创建一个工厂类:
public delegate void EmpCreated();
public EmployeeFactory {
public event EmpCreated myEvent;
public Employee Create(int empId, string empName){
var result = new Employee(empId, empName);
if(myEvent != null) myEvent();
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
订阅工厂类的活动,您将获得活动.
| 归档时间: |
|
| 查看次数: |
5878 次 |
| 最近记录: |