如何在界面中使用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();
}
}
答案 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)
}