2009-01-04 19 views
14

Bunu F # içinde nasıl çoğaltırsınız?İşaretleme arabirimini f # olarak nasıl bildirir ve kullanırsınız?

interface IMarker 
{ 
    // No members here 
} 

class MyClass : IMarker 
{ 
// can contain code 
} 

Güncelleme: Aşağıdaki kod işaretleyici arabirimini tanımlar, ama cevapların hiçbiri bugüne kadar

type IMarker = interface  end 
+2

.NET kodlama yönergeleri bu desene karşı öneride bulunur. Nedenini bilmiyorum. –

+6

özniteliklerini bulmak için yansımayı kullanmak çok daha kolay ve hızlıdır. –

cevap

-1

üst Kapalı (yukarıda Sınıfım bakınız) Bu işaretleyici arabirimini uygulayan sınıf producde yönetir (Visual Studio kadar ateş olmadan) başım:

type IMarker ; 

type MyClass = 
    interface IMarker 
3

, sana olmayan hafif sözdizimi (arayüz ... sonuna) dönmek zorunda olacağına inanıyoruz.

#light 

type IMarker = 
    interface 
    end 

type Marker = 
    interface IMarker 
13

Eski soru, ama gerekli sözdizimi (F # 2.0) bu özel durum için aslında:

type IMarker = interface end 

type Marker = 
    class 
    interface IMarker 
    end 

Veya alternatif (Marker için bir kurucu da dahil):

type IMarker = interface end 

type Marker() = 
    interface IMarker 

Sadece

type Marker = 
    interface IMarker 

mümkün değil çünkü yeni bir arayüz tipi oluşturmak istediğinize benziyor.

İlgili konular