Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中的结构(找不到类型)_C#_Struct_Xna - Fatal编程技术网

C#中的结构(找不到类型)

C#中的结构(找不到类型),c#,struct,xna,C#,Struct,Xna,我是C#的新手,所以请原谅这个不切实际的问题。我正在玩一个简单的XNA游戏演示。我有一个结构,我想对几个类可用。其定义如下: PhotonType.cs using System; namespace ShipDemo { public struct PhotonType { public Color tint; } } using System; namespace ShipUtils { public struct PhotonType

我是C#的新手,所以请原谅这个不切实际的问题。我正在玩一个简单的XNA游戏演示。我有一个结构,我想对几个类可用。其定义如下:

PhotonType.cs

using System;

namespace ShipDemo
{
 public struct PhotonType {
        public Color tint;
 }
}
 using System;

 namespace ShipUtils
 {
      public struct PhotonType
      {
           public Color tint;
      }
 }
  using ******.ShipUtils;

  public class Ship
  {
       private PhotonType photonType;
       public Ship(float x, float y, float ang, Boolean correctSound, PhotonType photonType)
  }
在同一文件夹/命名空间中的另一个文件中,Ship.cs,我引用了以下结构:

namespace ShipDemo {
    public class Ship {
    //...
       private PhotonType photonType;
       //...
       public Ship(float x, float y, float ang, Boolean correctSound, PhotonType photonType) {
    //...
  }
}
这使我在对PhotonType的两个引用上都出现编译错误

类型或命名空间名称出现错误1 找不到“PhotonType”(是) 您缺少using指令或 装配 参考?)

我做错了什么

////

另外,C#文档中说

初始化文件是错误的 结构中的实例字段

但是如果我想提供默认值呢


我使用的是Visual Studio Ultimate 2010 Beta版。

是否包含包含PhotonType的命名空间?e、 g.通过“使用”


您是否包含包含PhotonType的命名空间?e、 g.通过“使用”


提示在您收到的错误消息中

。。。缺少使用指令

使用$Namespace$.ShipDemo
添加到要使用PhotonType类型的代码顶部

编辑:


两个文件位于同一命名空间中

在示例代码中,您在两个示例中都提到了
namespace ShipDemo…
。假设您使用的是不同的文件,这将是更多的麻烦比它的价值

尝试以下方法

PhotonType.cs

using System;

namespace ShipDemo
{
 public struct PhotonType {
        public Color tint;
 }
}
 using System;

 namespace ShipUtils
 {
      public struct PhotonType
      {
           public Color tint;
      }
 }
  using ******.ShipUtils;

  public class Ship
  {
       private PhotonType photonType;
       public Ship(float x, float y, float ang, Boolean correctSound, PhotonType photonType)
  }
Ship.cs

using System;

namespace ShipDemo
{
 public struct PhotonType {
        public Color tint;
 }
}
 using System;

 namespace ShipUtils
 {
      public struct PhotonType
      {
           public Color tint;
      }
 }
  using ******.ShipUtils;

  public class Ship
  {
       private PhotonType photonType;
       public Ship(float x, float y, float ang, Boolean correctSound, PhotonType photonType)
  }

提示在您收到的错误消息中

。。。缺少使用指令

使用$Namespace$.ShipDemo
添加到要使用PhotonType类型的代码顶部

编辑:


两个文件位于同一命名空间中

在示例代码中,您在两个示例中都提到了
namespace ShipDemo…
。假设您使用的是不同的文件,这将是更多的麻烦比它的价值

尝试以下方法

PhotonType.cs

using System;

namespace ShipDemo
{
 public struct PhotonType {
        public Color tint;
 }
}
 using System;

 namespace ShipUtils
 {
      public struct PhotonType
      {
           public Color tint;
      }
 }
  using ******.ShipUtils;

  public class Ship
  {
       private PhotonType photonType;
       public Ship(float x, float y, float ang, Boolean correctSound, PhotonType photonType)
  }
Ship.cs

using System;

namespace ShipDemo
{
 public struct PhotonType {
        public Color tint;
 }
}
 using System;

 namespace ShipUtils
 {
      public struct PhotonType
      {
           public Color tint;
      }
 }
  using ******.ShipUtils;

  public class Ship
  {
       private PhotonType photonType;
       public Ship(float x, float y, float ang, Boolean correctSound, PhotonType photonType)
  }
听起来你需要

using ShipDemo;
在Ship.cs文件的顶部。 或者确保您的Ship类包装在ShipDemo命名空间中:

namespace ShipDemo
{
    public class Ship
    {
        //...
    }
}
或者我们需要您发布更多代码供我们查看。

听起来您需要

using ShipDemo;
在Ship.cs文件的顶部。 或者确保您的Ship类包装在ShipDemo命名空间中:

namespace ShipDemo
{
    public class Ship
    {
        //...
    }
}

或者我们需要您发布更多代码供我们查看。

这两个文件是在同一个项目中吗?如果命名空间在两个项目之间拆分,则需要在另一个项目中引用包含PhotonType的项目


如果是这种情况,我会质疑设计,因为通常我们不会在多个程序集中拆分同一名称空间。

这两个文件是在同一个项目中吗?如果命名空间在两个项目之间拆分,则需要在另一个项目中引用包含PhotonType的项目


如果是这种情况,我会质疑设计,因为通常我们不会在多个程序集中拆分同一名称空间。

如果这是多目标XNA项目(Windows/XBox/Zune)的一部分。。。如果是,其中一个文件可能不包括在项目中。如果不是这种情况,您可能需要再次检查
PhotonType.cs
构建操作是否设置为
Compile
(如果这是多目标XNA项目(Windows/XBox/Zune)的一部分,则在单击
解决方案资源管理器中的文件后,这是
属性
窗格中的一个)…如果是,其中一个文件可能不包括在项目中。如果不是这种情况,您可能需要再次检查
PhotonType.cs
Build操作是否设置为
Compile
(在
解决方案资源管理器中单击文件后,这是
属性
窗格中的一个。您的假设不正确。请停止假设

  • 绝对确保您已经编译并且正在使用最新编译版本的程序集
    • 清理解决方案。重新编译解决方案。再次测试
  • 如果
    Ship
    PhotonType
    位于两个不同的组件中(即项目)
    • 清理并重新编译
    • 确保包含
      装运
      的程序集引用包含
      PhotonType的项目
      • 引用另一个项目而不是该项目的DLL是一个常见的错误
      • 这会导致您引用项目的旧版本,而不是最新版本
      • 删除对
        PhotonType
        dll的任何引用,并重新添加对其项目的引用
  • 如果它们在同一溶液中
    • 清理并重新编译
    • 确保编译了
      PhotonType
      文件
      • 在项目浏览器中右键单击
        PhotonType.cs
        ,然后选择属性
      • 构建操作应该是
        Compile
  • 如果你仍然有这个问题,你的项目可能会一团糟
    • 它可能有noobitis,我们刚开始的时候都经历过
    • 创建新的解决方案,向其中添加新项目,并为
      Ship
      PhotonType
    • 查看是否所有内容都正确编译。将此新解决方案与旧解决方案进行比较,看看有什么不同

  • 您可能在这一过程中做了一些奇怪的事情。如果没有看到您的项目,很难说清楚到底是什么。如果这些都不起作用,我建议将您的项目压缩并上传到某个地方。通过查看项目,可能需要一分钟的时间来查看问题所在。

    您的假设不正确。停止假设

  • 绝对确保您已经编译并且正在使用最新编译版本的程序集
    • 清洗溶液。重新编译溶质