2011-05-08 90 views
1

如果它有一個特定的自定義屬性,有什麼辦法強制類實現一個接口?如何定義類類型的約束如果它具有自定義屬性?

我想要編譯時錯誤,如果具有特定屬性的類沒有實現特定的接口。

[myAttrib] 
public MyClass:IMyInterface 
{ 

} 

如果myClass不是typeof(IMyInterface),我將在編譯時發生錯誤。

感謝,

+0

您可以創建一個從接口驅動的抽象類,並從該抽象類獲取最終的類驅動器。 – 2011-05-08 09:35:48

回答

0

在性能的情況下,你可以創建一個抽象類繼承的接口,並從抽象類得到你的最後一類的車程。

看一看

public interface Test 
    { 
     string Name { get; set; } 
    } 

    public abstract class Test1 : Test 
    { 
     public abstract string Name { get; set; } 
    } 

    public class Test2 : Test1 
    { 

    } 

對於自定義屬性,你可以做

public class Alias : System.Attribute 
    { 
    string[] _types; 

    public Alias(params string[] types) 
    { 
     this.Types = types; 
    } 
    public Alias() 
    { 
     this.Types = null; 
    } 

    public string[] Types 
    { 
     get { return _types; } 
     set { _types = value; } 
    } 
    } 

    public interface Test 
    { 
     Alias Attrib{ get;} 
    } 

    public abstract class Test1 : Test 
    { 
     public abstract Alias Attrib { get; } 
    } 

    public class Test2 : Test1 
    { 

    } 

希望我回答你的問題。

+0

嗨阿卜杜爾,謝謝你回覆 但是好像你沒有得到我的問題很好 我說[自定義屬性]不屬性 – hm1984ir 2011-05-08 10:09:37

相關問題