首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-09-05 
在线求事件如何调用,好了马上给分public event EventHandler PassWordError//密码错误public void OnPass

在线求事件如何调用,好了马上给分
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)发布事件。

热点排行