這是我在C#
問題:物業無法訪問,即使聲明爲public
我有以下類別:
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
屬性。我試過做非自動屬性的方式。 (即我寫了一個私人支持者變量並寫出了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
。
再次感謝您的幫助!
你確定它不是經理引用的不同實體嗎? – forsvarir 2011-05-04 18:37:26
確保它們在同一個命名空間 – Equiso 2011-05-04 18:38:48
好點@forsvarir,這些都在同一個文件中嗎?經理引用了哪些其他名稱空間?實體是一個相當普遍的名稱,所以你可能會碰撞。如果你看一下Intellisense for Entity,它應該告訴你它是從哪個命名空間獲得的。 – 2011-05-04 18:39:35