C# C语言枚举声明
嗨,有没有一种方法可以声明一个枚举,或者自定义声明一个以C#返回对象的枚举的方法 如果我们想返回名称而不是1和2? 与testEnum类似,firstname返回1 我想声明一个枚举来返回Java中的对象。可能吗?说明: 每个枚举类型都有一个基础类型,它可以是除char之外的任何整数类型C# C语言枚举声明,c#,dll,C#,Dll,嗨,有没有一种方法可以声明一个枚举,或者自定义声明一个以C#返回对象的枚举的方法 如果我们想返回名称而不是1和2? 与testEnum类似,firstname返回1 我想声明一个枚举来返回Java中的对象。可能吗?说明: 每个枚举类型都有一个基础类型,它可以是除char之外的任何整数类型 假设您的意思是对象为复杂/引用类型。那么您的问题的答案是否定的。您可以始终使用包含引用类型的命名属性创建一个类。我认为这只有在java中才可能 似乎您希望以Joshua Bloch的方式实现单例。 枚举是一组命
假设您的意思是
对象
为复杂/引用类型。那么您的问题的答案是否定的。您可以始终使用包含引用类型的命名属性创建一个类。我认为这只有在java中才可能
似乎您希望以Joshua Bloch的方式实现单例。
枚举是一组命名常量,其基础类型是除Char之外的任何整数类型。如果没有显式声明基础类型,则使用Int32。Enum是.NET Framework中所有枚举的基类。我想您可能是一个公开静态字段的类,该字段可以是您想要的任何类型。您可以为此使用接口:
interface IColorEnum {};
class ColorEnum: IColorEnum
{
public static const Red = new ColorEnum();
public static const Green = new ColorEnum();
public static const Blue = new ColorEnum();
};
像往常一样使用它:
void foo(IColorEnum color)
{
if(color == ColorEnum.Red) {...}
}
更新+改进:您甚至可以删除接口,只需使用带有两个此类类型的公共静态字段和私有构造函数的类,以防止创建新实例:
class ColorEnum
{
private ColorEnum() {};
public static const Red = new ColorEnum();
public static const Green = new ColorEnum();
public static const Blue = new ColorEnum();
};
您可以这样做:
public class NameEnum
{
static NameEnum()
{
FirstName = new NameEnum("FirstName");
LastName = new NameEnum("LastName");
}
public static NameEnum FirstName { get; private set; }
public static NameEnum LastName { get; private set; }
private NameEnum(string name)
{
this.Name = name;
}
public string Name { get; private set; }
}
这足够接近了吗?你能展示你有什么或者你想做什么的伪代码吗?私有枚举testEnum{firstname=1,lastname=2}以及我们是否想返回名称而不是1和2?与testEnum类似,firstname返回1。我想声明一个枚举来返回Java中的对象。有可能吗?所以您试图将枚举装箱到引用类型中,是吗?
public class NameEnum
{
static NameEnum()
{
FirstName = new NameEnum("FirstName");
LastName = new NameEnum("LastName");
}
public static NameEnum FirstName { get; private set; }
public static NameEnum LastName { get; private set; }
private NameEnum(string name)
{
this.Name = name;
}
public string Name { get; private set; }
}