属性即使声明为公共也不可访问
本文关键字:访问 声明 属性 | 更新日期: 2023-09-27 17:54:59
这是我在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和set)。
编辑
一些有用的海报告诉我,我没有提供足够的信息。
我很抱歉,这是我第一次在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
。
再次感谢您的帮助!
查看您的示例应该工作-您可以验证Entity
指向您定义的类,而不是一些内置类吗?(在Visual Studio中右键单击Entity
,进入定义)。
虽然我还没有测试过,但我强烈怀疑,如果我将您的代码复制并粘贴到Visual Studio中,它将不会产生您引用的错误。(即使是你编辑过的版本)
请张贴一个实际产生错误的例子。将你的项目精简到最基本的部分,只发布与问题相关的部分。很可能,您会自己在过程中发现错误:)