1

尝试enum从另一个类访问一个名为 Monsters 的 .using在我的课堂上关联。

这是我的枚举代码:

namespace Zadify.Enums
{
    public enum Monsters
    {
        Zombie,
        Skeleton,
        Mummy,
        Robot,
        Demon
    }
}

这是我的课程,我需要从以下位置访问它:

using System;
using System.Xml.Serialization;
using Zadify.Enums;

namespace Zadify
{
    [Serializable]
    public abstract class Goal
    {
        //Properties, Other methods

        public void AssignMonsterData(int rank)
        {
            var random = new Random();

            var monsterTypeValues = Enum.GetValues(typeof (Monsters)); //Gives the error on "Monsters" here
            var monster = (Monsters) monsterTypeValues.GetValue(random.Next(rank - 1)); //Also gives the error on this "Monsters"

            //Do other stuff
        }

我后来做了一个switchon monster,每次我使用Monsters.Zombie,等时似乎都很好Monsters.Skeleton。我还有其他几个都可以正常工作,事实上,我在这个类中使用了完全相同的代码。enumsZadify.Enums

到目前为止,我已经尝试更改枚举namespace并将 a 添加using到那个 newnamespace中,复制Monsters到另一个文件中,清理项目并重建一百次。我正在使用 Visual Studio 2010 并为 Android 应用程序编写 Mono,尽管这些类中没有 Android 代码。

在我构建之前,Visual Studio 似乎没有问题。事先,智能感知工作正常,如果我取出该using Zadify.Enums;行,它会询问这是否是我想要引用的内容,然后 ctrl+单击它会将我带到正确的文件。

如果我应该提供任何其他代码,请告诉我。

4

4 回答 4

1

@ZAD-Man,检查您的客户资料设置。

  1. 右键单击项目
  2. 您应该在“应用程序”选项卡上
  3. 查看 Target 框架下拉菜单

设置为.Net Framework xx Client Profile? 在 Visual Studio 将我的项目默认为该项目之前,我遇到了一些奇怪的问题……尝试将其更改为.Net Framework 4没有客户端配置文件部分,看看它是否有效。

您正在寻找的屏幕与此类似:

在此处输入图像描述

于 2013-02-26T05:32:10.380 回答
0

它可能发生的原因是该类没有被添加到类库中。还要检查引用是否添加了这个类库。

于 2013-02-26T03:49:21.593 回答
0

所以事实证明我只是犯了一个愚蠢的错误。我Goal.cs在另一个项目中添加了链接,但忘记链接我的枚举。另一个没有问题的唯一原因是因为它被抓住了Monsters并且没有看其他人。由于它是一个链接,单击异常只是将我带到了真实的Goal.cs,所以我认为问题出在那个项目中,但如果我仔细观察,我会发现它是另一个项目。

于 2013-02-26T22:33:27.713 回答
0

我有这个。问题是引用项目意外地将其目标更改为 x86,而枚举项目目标仍然是 Any CPU。

于 2019-11-05T13:48:10.327 回答