接口中的枚举存根?

时间:2010-08-06 15:37:41

标签: c#

我在这个项目中的一个Enum.cs类中定义了一个枚举,其中包含这些接口。

我有一个名为IPhoto的接口,其中我需要放置一个名为FileType的属性,因为此服务中的其他方法需要它,所以我希望任何实现IPhoto的类都定义它以便他们知道它。

这看起来不合适还是你不会做这样的事情?那我怎么定义呢?

我的意思是我不能这样做:

MyEnum FileType;

事情是所有文件都有一个类型。在我的具体课程中,我发信号表示使用Enum(所以jpeg等)。因此,任何实现此功能的类都必须以某种方式具有FileType属性。

4 个答案:

答案 0 :(得分:4)

您可以向界面添加属性。请参阅docs

public interface ISampleInterface 
{    
    MyEnum FileType
    {
        get;
    }
}

现在,界面的所有实现都必须为该属性定义一个getter。

答案 1 :(得分:2)

如果它是你的对象需要符合的接口的一部分,我看不出有任何理由不这样做,如果你想为接口添加一个只读属性,就像这样:

public interface IPhoto
{
    MyEnum FileType
    {
        get;
    }
}

读写将是:

public interface IPhoto
{
    MyEnum FileType
    {
        get;
        set;
    }
}

答案 2 :(得分:0)

如果以前知道所有可能的文件类型,则可以使用枚举。当然,您只需在界面中添加一个属性即可。枚举类型。

如果服务可以定义自己的文件类型,则必须使用一个类(然后可以进行子类化)。

答案 3 :(得分:0)

你试过这个吗?

public enum MyEnum { one, two, three }
public interface Bar { MyEnum Whatever { get; set; } }