为什么我的C#枚举不起作用?

我在使用C#中的枚举时遇到问题

我在这里有一个枚举:

namespace Project.Shared
{
    public enum CostType
    {
        Dollars,
        Percent
    }
}

我有一个试图在这里使用枚举的对象:

using Project.Shared;
namespace Project.Shared.FooNamespace
{
    public class Foo
    {
        public int CostType { get; set; }

        public Foo()
        {

            CostType = (int)CostType.Dollars; // <--- error syntax highlighting on 'Dollars'
        }
    }
}

这会导致错误:

‘int’ does not contain a definition for ‘Dollars’ and no extension method ‘Dollars’ accepting a first argument of type ‘int’ could be found (are you missing a using directive or an assembly reference?)

我不明白为什么我不能在那里使用我的枚举.有人可以帮我解释一下吗?

因为你的类Foo有这个定义 – public int CostType {get;组; } – 它的本地范围比你的枚举更多.

尝试使用其命名空间完全限定它:

CostType = (int)Project.Shared.CostType.Dollars;
翻译自:https://stackoverflow.com/questions/8620246/why-are-my-c-sharp-enums-not-working

转载注明原文:为什么我的C#枚举不起作用?