Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface IFilter<I,O>
- {
- void OnInput(object sender, I args);
- }
- class AbstractFilter<I,O> : IFilter<I,O>
- {
- public delegate void InputEventHandler(I args);
- public delegate void OutputEventHandler(O args);
- public event OutputEventHandler Processed;
- public void OnInput(object sender, I args)
- {
- throw new NotImplementedException();
- }
- }
- class IntToDoubleFilter : AbstractFilter<Int32,Double>
- {
- public event AbstractFilter<int, double>.OutputEventHandler Processed;
- public void OnInput(int args)
- {
- Double dbl = Convert.ToDouble(args);
- Processed(args);
- }
- }
- class DoubleToStringFilter : AbstractFilter<Double,String>
- {
- public event AbstractFilter<double, string>.OutputEventHandler Processed;
- public void OnInput(double args)
- {
- String s = args.ToString();
- Processed(s);
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- int i = 100000;
- IntToDoubleFilter f1 = new IntToDoubleFilter();
- DoubleToStringFilter f2 = new DoubleToStringFilter();
- f1.Processed += f2.OnInput;
- f2.Processed += ShowString;
- f1.OnInput(i);
- }
- private void ShowString(String str) {
- MessageBox.Show(str);
- }
Add Comment
Please, Sign In to add comment