c# - 错误 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 上。
解决方案
您已将枚举类型嵌入到一个类中
解决方法是将它从类中删除,或明确指定它
public EnumData.UNIT aiChoice;
推荐阅读
- mobile - 检查 Android 应用的属性值时返回意外值
- macos - Oracle SQL Developer macOS 问题
- angularjs - 如何访问我使用 ng-init 启动的脚本代码中的 $scope 变量
- ajax - 使用 @RequestBody 从 ajax 接收数据并将其绑定到“用户”,但失败
- javascript - 如何在 React JS 中创建类似 (domain.com/dashboard/products) 的路由
- javascript - 动态添加/删除输入行 javascript,jquery
- javascript - Vue路由器 - 命名路由缺少参数
- swift - 为什么只有内置的 UIColors 在这里工作?
- c++ - 读取结构数组的二进制表达式的操作数无效
- javascript - ngFor 中的函数被触发 x 次