1

Generic.Listを継承するカスタムリストがあり、DeselectAllという名前のすべてのメンバーの選択を解除するメソッドがあります

数週間はこのように見え、正常に機能しました。

Public Sub DeselectAll()
    MyBase.ForEach(Function(p As Publipostable) p.ModeEnvoiChoisi = Nothing)
End Sub

今日、それは動作を停止しました?!?デリゲートを使用して以前のバージョンに戻しましたが、正常に機能します...

Public Sub DeselectAll()
    MyBase.ForEach(AddressOf DeselectModeEnvoi)
End Sub

Private Sub DeselectModeEnvoi(ByVal p As IPublipostable)
    p.ModeEnvoiChoisi = Nothing
End Sub

誰かがこの行動を見たことがありますか?asp.net3.5アプリにあります。

ただ疑問に思う、サム

編集:動作停止。これは、リスト内の各アイテムでプロパティp.ModeEnvoiChoisiがNothingに設定されなくなったことを意味します。DeselectAllメソッドが呼び出されますが、すべてのアイテムは以前の値を保持します。

4

1 に答える 1

2

.net 3.5では、VBには、等式演算子と集合演算子を区別する方法がありません。どちらも "="であり、コンパイラーが等式チェックを選択するためです(私が知っている奇妙なことです)。.net 4.0では、ラムダ関数で集合演算子を問題なく使用できますが、.net3.5ではVBでは使用できません。

于 2010-12-16T17:01:44.697 に答える