我有一个BaseImageView(平台在这里不相关),它有一个属性Effect
,它是一个command对象。
我希望我的所有命令都能实现IImageEffect
,static
方法ApplyEffect
,拍摄图像并返回带效果的图像。
但编译器抱怨我无法将接口方法标记为static
,但这似乎是逻辑选项(因为效果不需要状态信息)。
我问这个因为我需要100个效果对象才能将1个效果应用到100个不同的图像,而我可以通过传递类并调用静态方法,这将取消100个实例。
有没有办法可以使用静态接口,或者我可以传递类并让它调用该类型的静态ApplyEffect
?
答案 0 :(得分:0)
我建议您创建一个实现静态方法的抽象类,就像您想要使用该接口一样。
看起来像这样
name
如果您不想从抽象类继承,请创建一个静态类来应用效果。
class Program
{
static void Main(string[] args)
{
BaseImageView.ApplyEffect();
// Or
EffectClass.ApplyEffect();
}
}
public abstract class EffectClass
{
public static void ApplyEffect()
{
// Effect of awesomeness
}
}
public class BaseImageView : EffectClass
{
}