RIMBAUD,20岁后失业,................................

Asp.Net,MONO

博客园 首页 新随笔 联系 订阅 管理

以下声明一个属性,当属性改变前后时候,触发事件,如果ICON为当前的ICON则不改变属性,也不触发事件。

 Public Property [Icon]() As Icon
            Get
                Return _icon
            End Get
            Set(ByVal Value As Icon)
                If Not (_icon Is Value) Then
                    OnPropertyChanging([Property].Icon)
                    _icon = Value
                    OnPropertyChanged([Property].Icon)
                End If
            End Set

以上用IS来判断可以
如果用EQUALS来判断呢?可没有

奇怪的是ICON本身没有EQUALS方法,当是它的CLONE却有EQUALS方法,查MSDN没有找到。.

下面的代码就是劣质的典型:哈哈!

如下:

Public Property Icon() As Icon
Get
Return _icon
End Get
Set(ByVal Value As Icon)
 If _icon Is Nothing Then 
                OnPropertyChanging([Property].Icon)
                _icon = Value
                OnPropertyChanged([Property].Icon)
                Return
            End If
If Not (_icon.Equals(Value)) Then
OnPropertyChanging([Property].Icon)
_icon = Value
OnPropertyChanged([Property].Icon)
End If
End Set
End Property
-----------------------------------------------------------------

Ninputer(装配脑袋) 的提醒:

Icon是有Equals方法的,但VB默认将它隐藏,除非他由你自己编写并显式继承自Object。这完全是IDE的问题,你可以写Icon.Equals,虽然不自动弹出,但绝对没有任何问题,放心写吧。


posted on 2004-06-08 13:48  瓶子  阅读(1700)  评论(1编辑  收藏  举报