2009-11-08 45 views

Trả lời

15

Đó là về cơ bản giống như trong bất kỳ ngôn ngữ khác:

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

Đó không phải là "cơ bản giống nhau" như các ngôn ngữ khác: P –

+1

Cảm ơn, gì chính xác là [] thuộc tính làm gì? Tôi không thể tìm thấy bất kỳ tài liệu nào về nó. – rysama

+4

@RodYan - nó ảnh hưởng đến biểu mẫu đã biên dịch mà sự kiện diễn ra; cho interop với các ngôn ngữ .NET khác (và để thực hiện các giao diện phơi bày các sự kiện .NET), bạn sẽ cần áp dụng nó cho một giá trị IEvent. Điều này làm cho các phương thức 'add_' và' remove_' được tạo ra, trái ngược với thực sự phơi bày một thuộc tính của kiểu 'IEvent <_,_>', như được mô tả tại http://msdn.microsoft.com/en-us/library/ee370437(VS .100) .aspx. – kvb

Các vấn đề liên quan