2

AS3 では通常、メソッドまたは演算子のオーバーロードが許可されていないことは知っていますが、以前に [] 演算子の回避策を見たことがあると思います。基本的に、私はディクショナリから継承するかラップするかのどちらかを試みています-必ずしもどちらを気にする必要はありません-そして、その演算子に少し特別な動作を作成します。つまり、行で2回使用された場合(object[x][y] )。これに使用できる特別な回避策や抜け穴はありませんか? ありがとう!

4

1 に答える 1

4

クラスをオーバーライドgetterssettersて使用できますProxy

Proxyclassを拡張して作成するとdynamic、これらのメソッドをオーバーライドできます。

[]演算子を使用すると、期待どおりにこれに適用されます (つまり、getter をオーバーライドした場合thing.xと同じになります)。thing["x"]x

上で Proxy クラスに追加したリンクを見ると、実行しようとしていることを実装する方法を示すサンプル コードのブロックがあります。

于 2012-12-20T06:10:11.663 に答える