summaryrefslogtreecommitdiff
path: root/mcs/tests/test-anon-136.cs
blob: f68b9552eaebb52493047c74cd09f5abca8b9621 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;

delegate void Handler<T> (object sender);

interface IBar<T> {
	event Handler<T> Handler;
}

class Foo<T> {

	IBar<T> proxy, real;

	event Handler<T> handler;

	Handler<T> proxyHandler;

	public event Handler<T> Handler {
		add {
			if (handler == null) {
				if (proxyHandler == null)
					proxyHandler = (object s) => handler (proxy);
			}
			handler += value;
		}
		remove {
			handler -= value;
		}
	}
}

class Program {

	public static int Main ()
	{
		var x = new Foo<int> ();
		x.Handler += null;
		return 0;
	}
}