Opened 16 years ago
#176 new バグ(ケアレスミス)
デリゲート+=の右辺にNew デリゲートを指定するとエラーになる
Reported by: | イグトランス (egtra) | Owned by: | dai |
---|---|---|---|
Priority: | 微-trivial | Milestone: | AB5 CP6 |
Component: | Compiler | Version: | |
Keywords: | Cc: |
Description
次のコードがコンパイルエラーになる。
#console Delegate Sub Callback1() Class T Static Sub f() : Print "hello" : End Sub Static Sub g() : Print "world" : End Sub End Class Dim f = New Callback1(AddressOf(T.f)) f += New Callback1(AddressOf(T.g)) f() System.Console.ReadLine()
出力は次の通り(11行目は+=の行)。
t.ab(11) : 定数式にリテラル値、または定数以外のものが含まれています。 t.ab(11) : 定数式にリテラル値、または定数以外のものが含まれています。 t.ab(11) : DoubleからCallback1に変換できません。
次のように書けば回避できるので、優先度微にした。
'その1 Dim f = New Callback1(AddressOf(T.f)) Dim g = New Callback1(AddressOf(T.g)) f += g 'その2 Dim f = New Callback1(AddressOf(T.f)) f += AddressOf(T.g)
Note:
See TracTickets
for help on using tickets.