首页 > 解决方案 > 错误 CS0246 - 是什么原因造成的,我该如何解决?

问题描述

我正在引用在另一个文件中创建的枚举并且收到错误 CS0246。以下是相关代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ScissorsPaperRock;

namespace ScissorsPaperRock
{
    public class AIChoice
    {
        public UNIT aiChoice; // error CS0246:
        public void start()
        {
            System.Random rnd = new System.Random(); // Makes the random class.
            int AISelect = rnd.Next(0, 3);
            {
                if (AISelect == 0)
                    aiChoice = UNIT.ROCK; // Oddly enough, no errors here so far?!?!

作为参考,这是创建枚举 UNIT 的地方。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ScissorsPaperRock;

namespace ScissorsPaperRock
{
    public class EnumData
    {
        public enum UNIT // a (player) and b (AI)
        {
            ROCK,
            PAPER,
            SCISSORS
        }

似乎它希望我使用 using 目录,但我不确定哪个?我尝试添加和删除命名空间并将命名空间添加为 using 指令。我在 Unity 上进行了搜索,其错误页面仅涵盖名称空间,因此没有帮助。Microsoft 页面有更多信息,让我相信问题是缺少 using 指令,但我不知道我缺少哪个,或者问题是否实际上是缺少 using 指令。

我正在使用 Unity 2019.4f1 个人版。这很重要,因为这个错误似乎不会发生在 2019.2.8f1 上。

标签: c#unity3d

解决方案


您已将枚举类型嵌入到一个类中

解决方法是将它从中删除,或明确指定它

public EnumData.UNIT aiChoice;

推荐阅读