我对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”不包含“dollars”的定义,并且找不到接受“int”类型的第一个参数的扩展方法“dollars”(是否缺少using指令或程序集引用?)
我不明白为什么我不能在那里使用枚举。有人能帮我解释一下吗?

最佳答案

因为您的类有这个定义-Foo-它比您的public int CostType { get; set; }有更多的本地作用域。
尝试使用其命名空间对其进行完全限定:

CostType = (int)Project.Shared.CostType.Dollars;

09-12 22:24