惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - Rawu

QT 使用(1) 到广外路线图 假期电话值班问题 test from blogex DB2数据库中提高INSERT性能详解 [zt] Uwyn C++ Coding Standard 成员模板 class template template base -- const coding style Symbian OS C++ for Mobile Phones Volume2 -- hand note [zt]DB2编程小结 写个帖子记录一些小问题。 High-performance SQL Using DB2 routines to ease migration [ICNEWCASTLE]Bad day at the office [ICNEWCASTLE]I'll celebrate! the night before last night 's dream find it for a long time .. PB dddw filter Problem's Solution
Event Sample -- from Professional C#
Rawu · 2007-06-15 · via 博客园 - Rawu

//-- UserRequestEventArgs.cs

using System;

namespace EventSample
{
        
    
public enum RequestType {AdRequest ,PersonalMessageRequest};
    
    
/// <summary>
    
/// Description of UserRequestEventArgs.
    
/// </summary>

    public class UserRequestEventArgs:EventArgs
    
{
        
private RequestType request ;
        
        
public UserRequestEventArgs(RequestType request)
            :
base()
        
{
            
this.request = request;
        }

        
        
public RequestType Request
        
{
            
get 
            
{
                
return request;
            }

        }

    }

}



//-- UserInputMonitor.cs

using System;

namespace EventSample
{        
    
/// <summary>
    
/// Description of UserInputMonitor.
    
/// </summary>

    public class UserInputMonitor
    
{
        
        
public UserInputMonitor()
        
{
            
        }

        
        
public delegate void UserRequest(object sender, UserRequestEventArgs e);
        
        
public event UserRequest OnUserRequest;
        
        
public void Run()
        
{
            
while(true)
            
{
                Console.WriteLine(
"select preferred option ");
                Console.WriteLine(
" request advertisement - hit A then return " );
                Console.WriteLine(
" request personal message from mortimer ---------" + 
                                  
" hit P then return " );
                Console.WriteLine(
" Exit - hit X then return " );
                
                
string response  = Console.ReadLine();
                
                
char responseChar = (response == "")?'-':char.ToUpper(response[0]);
                
                
switch(responseChar)
                
{
                    
case 'A':
                        OnUserRequest(
this,
                                      
new UserRequestEventArgs(RequestType.AdRequest));
                        
break;
                    
case 'P':
                        OnUserRequest(
this,
                                      
new UserRequestEventArgs(RequestType.PersonalMessageRequest));
                        
break;
                    
case 'X':
                        
return ;
                        
                }

                                        
            }

        }

    }

}



//--MessageDisplayer.cs
using System;

namespace EventSample
{
    
/// <summary>
    
/// Description of Class1.
    
/// </summary>

    public class MessageDisplayer
    
{
        
public MessageDisplayer(UserInputMonitor monitor)
        
{
            monitor.OnUserRequest 
+=
                
new UserInputMonitor.UserRequest(UserRequestHandler);
        }

        
        
protected void UserRequestHandler(object sender,UserRequestEventArgs e)
        
{
            
switch(e.Request)
            
{
                
case RequestType.AdRequest:
                    Console.WriteLine(
"Monitor Phone is better than anyone else" + 
                                     
" because \n all our software is written in C#!\n");
                    
break;
                
case RequestType.PersonalMessageRequest:
                    Console.WriteLine(
"Today Monitor issued the following " + 
                                      
"statement: \n Nevermore !\n ");
                    
break;
                    
            }

        }

    }

}



//-- ManagersStaffMonitor.cs 
using System;
using System.Windows.Forms;
namespace EventSample
{
    
/// <summary>
    
/// Description of ManagersStaffMonitor.
    
/// </summary>

    public class ManagersStaffMonitor
    
{
        
public ManagersStaffMonitor(UserInputMonitor monitor)            
        
{
            monitor.OnUserRequest 
+= 
                
new UserInputMonitor.UserRequest(UserRequestHandler);            
        }

        
        
protected void UserRequestHandler(object sender , UserRequestEventArgs e)
        
{
            
if(e.Request == RequestType.PersonalMessageRequest)
            
{
                MessageBox.Show(
"Kaak!","Mortimer says ");
            }

        }

    }

}


//-- Main.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace EventSample
{
    
class MainClass
    
{
        
public static void Main(string[] args)
        
{
            UserInputMonitor inputMonitor 
= new UserInputMonitor();
            MessageDisplayer inputProcessor 
= new MessageDisplayer(inputMonitor);
            ManagersStaffMonitor mortimer 
= new ManagersStaffMonitor(inputMonitor);
            inputMonitor.Run();
        }

    }

}