特定のカスタム属性がある場合、クラスにインターフェイスを強制的に実装する方法はありますか?
特定の属性を持つクラスが特定のインターフェイスを実装していない場合、コンパイル時エラーが発生するようにします。
[myAttrib]
public MyClass:IMyInterface
{
}
myClass が typeof(IMyInterface) でない場合、コンパイル時にエラーが発生します。
ありがとう、
特定のカスタム属性がある場合、クラスにインターフェイスを強制的に実装する方法はありますか?
特定の属性を持つクラスが特定のインターフェイスを実装していない場合、コンパイル時エラーが発生するようにします。
[myAttrib]
public MyClass:IMyInterface
{
}
myClass が typeof(IMyInterface) でない場合、コンパイル時にエラーが発生します。
ありがとう、
プロパティの場合、インターフェイスを継承する抽象クラスを作成し、その抽象クラスから最終的なクラス ドライブを取得できます。
見て
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
{
}
ご質問にお答えします。