2015-10-10 47 views
0

我已經創建了一個對象,但儘管如此,我仍然遇到了上述錯誤。非靜態字段,方法或屬性'TEST_ENGINE.db'需要對象引用

#if (TEST_ENGINE) 

     class TEST_ENGINE 
     { 
      //creating an instance of all the classes required 
      private DBEngine<int, DBElement<int, string>> foo = new DBEngine<int, DBElement<int, string>>(); 

      public static void Main(string[] args) 
      { 
       foo.insert() 

我在foo.insert()處收到錯誤消息。可能是什麼原因?

回答

2

您的Main方法是靜態的,這意味着您不必讓TEST_ENGINE類的實例調用foo。但你需要一個實例來訪問該foo變量。

你既可以使foo靜:

private static DBEngine<int, DBElement<int, string>> foo = 
    new DBEngine<int, DBElement<int, string>>(); 

或者你可以實例化類的Main方法中:

public static void Main(string[] args) 
{ 
    var te = new TEST_ENGINE(); 
    TE.foo.insert(); 
+0

謝謝,從主工作中刪除靜態。 –

+0

噢,不錯。我沒有提出這樣的建議,因爲通常'Main'是你程序的入口點,並且從它移除靜態可能會阻止你的程序運行。猜你的程序設置不同... –

+1

你是對的,它確實停止了工作。我使用第二個選項來實例化Main中的類。 –

2

一套用到dbengine靜態

private static DBEngine<int, DBElement<int, string>> foo = new DBEngine<int, DBElement<int, string>>(); 

或聲明它主要方法

public static void Main(string[] args) 
     { 
      DBEngine<int, DBElement<int, string>> foo = new DBEngine<int, DBElement<int, string>>(); 
      foo.insert(); 
+0

'或在主要方法中聲明'什麼是'Mathod'修復你的錯字應該是'方法' – MethodMan

+0

是的,這是方法。 –

相關問題