c#接口中的枚举数据类型
本文关键字:枚举 数据类型 接口 | 更新日期: 2023-09-27 18:09:58
如何在接口中使用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();
}
}
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. 你正在使用保留字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();
}
}
如果你希望你的enum在每个实现类中都是不同的,你应该使用像
这样的泛型接口public interface MyInterface<T>
{
string MyMethod(T myEnum)
}
如果对于所有实现类都应该是相同的,只是不要把它放在任何类的外部:
public enum MyEnum { A, B, C }
public interface MyInterface
{
string MyMethod(MyEnum myEnum)
}