读书人

在线求事件怎么调用好了马上给分

发布时间: 2013-09-05 16:02:07 作者: rapoo

在线求事件如何调用,好了马上给分
public event EventHandler PassWordError;//密码错误
public void OnPassWordError(object sender, EventArgs e)
{
if (PassWordError != null)
PassWordError(sender, e);
}


--------------------------------
请问我在别的地方如何调用此事件
EventHandler e=new EventHandler ?????不知道怎么写
e. OnPassWordError ?????不知道怎么写
[解决办法]
直接调用 OnPassWordError(this,null)
[解决办法]
写一个事件处理函数,事件所属类的实例. PassWordError+=new EventHandler(事件处理函数);
[解决办法]


using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
User user = new User();
user.PassWordError += new User.PassWordErrorHandler(user_PassWordError);
//test
user.Login("admin", "456");
user.Login("admin", "123");
user.Login("users", "123");
Console.ReadLine();
}

static void user_PassWordError(object sender, PassWordErrorEventArgs e)
{
Console.WriteLine(e.Error);


}
}

public class User
{
public delegate void PassWordErrorHandler(object sender, PassWordErrorEventArgs e);
public event PassWordErrorHandler PassWordError;

public User() { }

public void Login(string username,string pwd)
{
if (username != "admin"
[解决办法]
pwd != "123")
OnPassWordError(new PassWordErrorEventArgs("用户名或密码不正确!"));
else
Console.WriteLine("登录成功!");
}

private void OnPassWordError(PassWordErrorEventArgs e)
{
PassWordErrorHandler temp = PassWordError;
if (temp != null)
temp(this, e);
}
}

public class PassWordErrorEventArgs : EventArgs
{
public string Error { get; private set; }
public PassWordErrorEventArgs(string err)
{
Error = err;
}
}
}


[解决办法]
ls的代码就可以

简化下:
public event EventHandler<PassWordErrorEventArgs> PassWordError;


这样就没必要定义
public delegate void PassWordErrorHandler(object sender, PassWordErrorEventArgs e);



[解决办法]
写一个事件处理函数,事件所属类的实例. PassWordError+=new EventHandler
[解决办法]

引用:
我想传一个string参数给e,谁能具体写一下

EventArgs e=new EventArgs(你的参数)然后OnPassWordError(this,e)发布事件。

读书人网 >C#

热点推荐