【发布时间】:2013-11-07 18:04:23
【问题描述】:
我有一个界面:
public interface IBaseInterface
{
void Base();
}
我使用它像:
public class BaseClass : IBaseInterface
{
public void Base()
{
}
}
但是,我想实现这样的属性:
public class BaseClass : IBaseInterface // Generates Compile-Time Error
{
public void Base()
{
}
}
我只希望能够使用这样的界面:
public interface IAdditionalBaseInterface : IBaseInterface
{
}
public class AdditionalBaseClass : IAdditionalBaseInterface // No Compile-Time Error
{
public void Base()
{
}
}
是否可以有一个自定义的Attribute 来执行此操作?我知道ObsoleteAttribute,但想知道它是如何工作的,或者更重要的是,我如何实现我自己的,它具有相同的编译时错误功能。
【问题讨论】:
-
请注意,ObsoleteAttribute 作弊并使用编译器魔法来实现它的功能。你不能自己做。
-
@TrevorElliott 我不是不相信你,我不相信没有具体证据或文件来支持他们的陈述的任何人。您可以提供的任何其他链接都会有所帮助。
-
我已经通过搜索与您类似的问题找到了该信息。你也可以。
-
@gleng:你不能在
Base类中实现方法Base。你想达到什么目的?不清楚。 -
我认为您不能创建这样的属性。您可以做的是创建一个在编译后运行并通过反射检查程序集的构建任务。
标签: c# attributes compiler-errors