2009-01-04 20 views
14

Làm thế nào để bạn sao chép điều này trong F #?Làm thế nào để bạn khai báo và sử dụng giao diện điểm đánh dấu trong f #?

interface IMarker 
{ 
    // No members here 
} 

class MyClass : IMarker 
{ 
// can contain code 
} 

Cập nhật: Các mã sau đây không xác định giao diện đánh dấu, nhưng không ai trong số các câu trả lời cho đến nay quản lý để producde lớp mà thực hiện giao diện đánh dấu này (xem MyClass trên)

type IMarker = interface  end 
+2

Nguyên tắc mã hóa .NET đề xuất mô hình này. Không biết tại sao. –

+6

Vì việc sử dụng phản chiếu dễ dàng hơn và nhanh hơn nhiều để khám phá các thuộc tính. –

Trả lời

-1

Off đỉnh đầu của tôi (mà không bắn lên Visual Studio):

type IMarker ; 

type MyClass = 
    interface IMarker 
3

Để có được một loại sản phẩm nào, tôi tin rằng bạn sẽ phải trở lại cú pháp không ánh sáng (giao diện ... kết thúc).

#light 

type IMarker = 
    interface 
    end 

type Marker = 
    interface IMarker 
13

Một câu hỏi cũ, nhưng cú pháp cần thiết (F # 2.0) đối với trường hợp đặc biệt này thực sự là:

type IMarker = interface end 

type Marker = 
    class 
    interface IMarker 
    end 

Hoặc cách khác (bao gồm một constructor cho Marker):

type IMarker = interface end 

type Marker() = 
    interface IMarker 

Chỉ cần viết

type Marker = 
    interface IMarker 

không thể thực hiện được vì có vẻ như bạn muốn tạo kiểu giao diện mới.

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