以下是C#
中的问题:
我有以下课程:
public class Entity {
public int Number { get; set; }
// Other methods, constructor etc, not relevant to this question.
}
public class Manager {
private Foo() {
Entity entity = new Entity();
entity.Number = 1;
}
}
在entity.Number = 1
行上,我收到以下编译时错误:
'Entity' does not contain a definition for 'Number' and no extension method 'Number accepting a first argument of type 'Entity' could be found (are you missing a directive or an assembly reference?)
如何解决此错误?看来我绝对应该能够访问Number
属性。我也尝试过这种非自动财产方式。 (即我写了一个私有的backer变量并写出了get并自己设置)。
一些有用的海报告诉我,我没有提供足够的信息 我很抱歉,这是我第一次在StackOverflow或类似网站上发布问题。请参阅下文以获取相关代码的更完整图片。
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using SharedContent;
namespace Glow
{
public class GlowGame : Microsoft.Xna.Framework.Game
{
// Viewport and graphics variables
GraphicsDeviceManager graphics;
public GlowGame()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
Entity entity = new Entity(Content);
// Error occurs in line below!
entity.Number = 1;
}
// Standard game template methods here: Initialize, LoadContent, Update,
// Draw, etc.
}
}
in a separate file named Entity.
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace SharedContent
{
public class Entity
{
public int Number { get; set; }
public Entity(ContentManager content) { }
}
}
确切的错误消息:
'SharedContent.Entity' does not contain a definition for 'Number' and no extension method 'Number' accepting a first argument of type 'SharedContent.Entity' could be found (are you missing a using directive or an assembly reference?)
另一个注意事项,我已检查并重新检查Entity
实际上是指向正确的代码,而不是其他Entity
。
再次感谢您的帮助!
答案 0 :(得分:3)
查看您的示例应该工作 - 您是否可以验证Entity
指向您定义的类,而不是某些内置类? (右键单击Visual Studio中的Entity
,转到定义)。
答案 1 :(得分:2)
虽然我没有测试过,但我强烈怀疑如果将代码复制并粘贴到Visual Studio中,它将不会产生您引用的错误。 (甚至是您编辑过的版本。)
请发布实际产生错误的示例。将项目修剪到骨骼并仅发布与问题相关的位。很可能,您将自己在过程中发现错误:)