2
我正在AppDelegate.cs中創建一個(數據庫類)的實例並希望從我的ViewControllers訪問此實例。它返回一個錯誤CS0120「的對象引用才能訪問非靜態成員`GeomExample.AppDelegate._db」(CS0120)」Monotouch - 訪問應用程序級別變量(CS0120)
我在AppDelegate中創建我的實例是這樣的:
[Register ("AppDelegate")]
public partial class AppDelegate : UIApplicationDelegate
{
...
public Database _db;
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
...
_db = new Database (Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments), "myDb.db"));
_db.Trace = true;
我然後嘗試訪問它像這樣,這會產生錯誤:
IEnumerable<DbShapeElement> shapes = AppDelegate._db.GetShapeElements (_shapeName, null);
任何幫助表示讚賞!
你是100%正確!你已經錯過了你的通話,採取Monotouch發展:) – Glinkot
@Glinkot - 謝謝大聲笑。我實際上有一個MonoTouch許可證,但沒有OSX盒子。也許聖誕老人今年會好起來的。 –
只是一個整容問題,但公共成員的名稱不應以下劃線開頭,而且使用類似'public DataBase Db {get;私人設置; }'。這確保只能從AppDelegate類中修改該值。 –