1Option Strict On
2Option Explicit On
3
4Public Class C
5    Public Shared Sub SharedMethodA(ByVal sender As Object, ByVal e As EventArgs)
6        Console.WriteLine("curious!")
7    End Sub
8
9    Public Shared Function Foo() As Integer
10        Return &H45
11    End Function
12
13    Public Shared Property Bar() As Integer
14        Get
15            Return 0
16        End Get
17        Set(ByVal value As int32)
18        End Set
19    End Property
20
21    Public Shared Event WizBangChanged As EventHandler
22
23    Public Shared m_foo As Int32 = 99
24End Class
25
26Class C1
27    Dim C As C
28
29    Shared Sub Accesses()
30        Console.WriteLine(C.m_foo)
31        Console.WriteLine(C.Foo())
32        Dim eh As New EventHandler(AddressOf C.SharedMethodA)
33        'AddHandler C.WizBangChanged, eh
34        C.Bar = 100
35        Console.WriteLine(C.Bar)
36    End Sub
37End Class
38
39Class C2
40    ReadOnly Property C As C
41        Get
42            Return Nothing
43        End Get
44    End Property
45
46    Shared Sub Accesses()
47        Console.WriteLine(C.m_foo)
48        Console.WriteLine(C.Foo())
49        Dim eh As New EventHandler(AddressOf C.SharedMethodA)
50        'AddHandler C.WizBangChanged, eh
51        C.Bar = 100
52        Console.WriteLine(C.Bar)
53    End Sub
54End Class
55
56Class C3
57    Function C() As C
58        Return Nothing
59    End Function
60
61    Shared Sub Accesses()
62        Console.WriteLine(C.m_foo)
63        'Console.WriteLine(C.Foo())
64        'Dim eh As New EventHandler(AddressOf C.SharedMethodA)
65        'AddHandler C.WizBangChanged, eh
66        'C.Bar = 100
67        'Console.WriteLine(C.Bar)
68    End Sub
69End Class