C# 重写枚举
我知道这是以前的答案,但我似乎找不到确切的答案,我想要什么,其他的太具体了。这是我的一般性问题;如何覆盖枚举?这样行吗C# 重写枚举,c#,enums,xna,overriding,C#,Enums,Xna,Overriding,我知道这是以前的答案,但我似乎找不到确切的答案,我想要什么,其他的太具体了。这是我的一般性问题;如何覆盖枚举?这样行吗 //Enum in the main class it is defined in public enum GameDifficulty { i1, i2, i3 } //Enum class being imported: using game1.classwithenum; //Would this override the enum and rep
//Enum in the main class it is defined in
public enum GameDifficulty
{
i1,
i2,
i3
}
//Enum class being imported:
using game1.classwithenum;
//Would this override the enum and replace i1, i2, and i3 with f1, f2, and f3?
public enum GameDifficulty
{
f1,
f2,
f3
}
你粘贴的代码无法正常工作 实现这一点的唯一方法是将每个枚举放在其自己的命名空间中 但即使如此,就类型强制而言,i1也不会与f1相同 正如JW所说,您可以使用New关键字覆盖名称,但是您仍然必须按名称空间访问它,并且
gamecoordity.i1
将不等于classwithenum.gamecoordity.i1
我有一种强烈的感觉,有一种更好的方法可以做到这一点,你能澄清一下你想要实现什么,并提供一个可能的例子吗?你粘贴的代码无法正常工作 实现这一点的唯一方法是将每个枚举放在其自己的命名空间中 但即使如此,就类型强制而言,i1也不会与f1相同 正如JW所说,您可以使用New关键字覆盖名称,但是您仍然必须按名称空间访问它,并且
gamecoordity.i1
将不等于classwithenum.gamecoordity.i1
我有一种强烈的感觉,有一种更好的方法可以做到这一点,你能澄清你想要实现什么,并提供一个例子吗?你不能重命名或扩展现有的枚举,但是你可以在创建自己的
枚举时从中借用值:
public enum MyGameDifficulty {
Recruit = GameDifficulty.Easy,
Soldier = GameDifficulty.Normal,
Commander = GameDifficulty.Hard,
Veteran }
您不能重命名或扩展现有枚举,但可以在创建自己的枚举时从中借用值:
public enum MyGameDifficulty {
Recruit = GameDifficulty.Easy,
Soldier = GameDifficulty.Normal,
Commander = GameDifficulty.Hard,
Veteran }
我认为你不能覆盖C#中的枚举。在这个场景中,我只使用int来跟踪游戏难度。旁注:我认为这是一个非常糟糕的主意,会导致代码混乱,难以阅读和维护。请注意,您不能更改引用相同enum
的其他代码,因此代码的不同部分将看到应为常量的不同值。这与将2的值改写为3的愿望非常相似。Porschiey是对的,你不能,但我相信有更好的方法;也许是一些聪明的接口/抽象接口。我认为你不能在C#中重写枚举。在这个场景中,我只使用int来跟踪游戏难度。旁注:我认为这是一个非常糟糕的主意,会导致代码混乱,难以阅读和维护。请注意,您不能更改引用相同enum
的其他代码,因此代码的不同部分将看到应为常量的不同值。这与将2的值改写为3的愿望非常相似。Porschiey是对的,你不能,但我相信有更好的方法;也许是一些聪明的界面/抽象界面。在XNA Game studio中,在帮助您创建游戏的文件中,有一个名为GameDemobility的枚举。它有三个价值观;简单、正常、困难。但我希望它包含4个不同名称的值,例如新兵、士兵、指挥官、退伍军人。这是可能的吗?因为枚举基本上是一个常量列表,所以您只能在源代码中更改它们,或者创建一个新的。在XNA Game studio中,在帮助您创建游戏的文件中,有一个名为GameOfficiency的枚举。它有三个价值观;简单、正常、困难。但我希望它包含4个不同名称的值,例如新兵、士兵、指挥官、退伍军人。这是可能的吗?因为枚举基本上是一个常量列表,所以只能在源代码中更改它们,或者创建一个新的。@TheQuantumBros-不知道其他的。咒语:反思就是答案,问题是什么?@Quantumbros-不知道还有其他的问题。咒语:反思就是答案,问题是什么?