C#中接口的枚举数据类型

时间:2011-09-28 07:18:04

标签: c# .net enums

如何在界面中使用enum数据类型?

这可能吗?

public interface IParent1
{
    string method1(Test enum);
}

public class Parent1 : IParent1
{
    public enum Test 
    {
        A, 
        B, 
        C
    }

    public string method1(Test enum)
    {
        return enum.ToString();
    }
}

3 个答案:

答案 0 :(得分:10)

enum是C#中的保留关键字。如果要将其用作变量名称,可以在前面添加@

public enum Test { A, B, C };

public interface IParent1
{
    string method1(Test @enum);
}

public class Parent1 : IParent1
{
    public string method1(Test @enum)
    {
        return @enum.ToString();
    }
}

但我不喜欢使用保留字来表示变量名。更好的方法是:

public enum Test { A, B, C };

public interface IParent1
{
    string method1(Test test);
}

public class Parent1 : IParent1
{
    public string method1(Test test)
    {
        return test.ToString();
    }
}

答案 1 :(得分:0)

看不出任何问题。但是为什么要在接口实现中嵌入你的枚举声明?您的代码将无法编译,因为: 1.您使用的是保留字enum 2. value未声明

试试这个:

public enum Test { A, B, C };

public interface IParent1 { string method1(Test @enum);}

public class Parent1 : IParent1
{
    public string method1(Test @enum)
    {
        return @enum.ToString();
    }
}

答案 2 :(得分:0)

如果你希望你的枚举在每个实现类中有所不同,你应该使用像

这样的通用接口
public interface MyInterface<T>
{
    string MyMethod(T myEnum)
}

如果对于所有实现类应该是相同的,则不要将它放在任何类之外:

public enum MyEnum { A, B, C }

public interface MyInterface
{
    string MyMethod(MyEnum myEnum)
}