2009-11-08 72 views

回答

15

这是基本相同的其他语言:

open System.ComponentModel 
type MyType() = 
    let ev = new Event<_,_>() 
    let mutable str = "" 
    member x.StringProp 
    with get() = str 
    and set(str') = 
     str <- str' 
     ev.Trigger(x, PropertyChangedEventArgs("StringProp")) 
    interface INotifyPropertyChanged with 
    [<CLIEvent>] 
    member x.PropertyChanged = ev.Publish 
+9

这是不是“基本相同”的其他语言:P – 2009-11-08 23:10:15

+1

谢谢, 究竟是[]属性呢?我似乎无法找到任何文件。 – rysama 2009-11-08 23:17:00

+4

@RodYan - 它影响事件所需的编译形式;与其他.NET语言进行互操作(并实现暴露.NET事件的接口),您需要将其应用于IEvent值。这导致生成add_和remove_方法,而不是实际公开类型为“IEvent <_,_>”的属性,如http://msdn.microsoft.com/en-us/library/ee370437(VS .100)的.aspx。 – kvb 2009-11-08 23:28:46

相关问题