source: trunk/TestCase/SimpleTestCase/DelegateTest.ab@ 343

Last change on this file since 343 was 343, checked in by dai, 17 years ago

デリゲート機構にエラーチェックを仕込んだ

File size: 1.9 KB
Line 
1Namespace DelegateTest
2
3Delegate Sub Callback1()
4Delegate Function Callback2() As Long
5Delegate Sub Callback3( a As Long )
6Delegate Sub Callback4( a As String )
7Delegate Function Callback7( str As String ) As String
8
9
10Class TestClass
11 proc1Flag As Boolean
12 proc2Flag As Boolean
13 proc3Flag As Boolean
14 proc4Flag As Boolean
15 proc5Flag As Boolean
16 proc6Flag As Boolean
17
18 Static staticProc1Flag = False As Boolean
19
20Public
21 Sub TestClass()
22 ClearFlags()
23 End Sub
24
25 Sub ClearFlags()
26 proc1Flag = False
27 proc2Flag = False
28 proc3Flag = False
29 proc4Flag = False
30 proc5Flag = False
31 proc6Flag = False
32 End Sub
33 Function CheckFlags() As Boolean
34 Return proc1Flag and proc2Flag and proc3Flag and proc4Flag and proc5Flag and proc6Flag
35 End Function
36
37 Sub Proc1()
38 proc1Flag = True
39 End Sub
40
41 Function Proc2() As Long
42 proc2Flag = True
43 End Function
44
45 Sub Proc3or4( a As Long )
46 proc3Flag = (a=100)
47 End Sub
48
49 Sub Proc3or4( a As String )
50 proc4Flag = (a="Proc4 calling")
51 End Sub
52
53 Sub Proc5( a As String )
54 proc5Flag = (a="Proc4 calling")
55 End Sub
56
57 Sub Proc6( a As String )
58 proc6Flag = (a="Proc4 calling")
59 End Sub
60
61 Static Function Proc7( str As String ) As String
62 Return "Proc7 result[" + str + "]"
63 End Function
64End Class
65
66Sub TestMain()
67 Dim testObj As TestClass
68 Dim dg1 = New Callback1( AddressOf(testObj.Proc1) )
69 Dim dg2 = New Callback2( AddressOf(testObj.Proc2) )
70 Dim dg3 = New Callback3( AddressOf(testObj.Proc3or4) )
71 Dim dg4 = New Callback4( AddressOf(testObj.Proc3or4) )
72 dg4 += AddressOf(testObj.Proc5)
73 dg4 += AddressOf(testObj.Proc6)
74
75 dg1()
76 dg2()
77 dg3( 100 )
78 dg4( "Proc4 calling" )
79
80 UnitTest( "Delegate1", testObj.CheckFlags() )
81
82 Dim dg7 = New Callback7( AddressOf(TestClass.Proc7) )
83 UnitTest( "Delegate2", dg7( "test value" ) = "Proc7 result[test value]" )
84
85End Sub
86
87End Namespace
88
89DelegateTest.TestMain()
Note: See TracBrowser for help on using the repository browser.