2016-08-25 45 views
-2

多年來我沒有使用,當我做到這一點時,它是。我正在嘗試在C#中設置一個簡單的概念驗證,我真的很掙扎。我創建了一個新的表單應用程序(我希望能夠通過按鈕控制提要,啓動/停止等)。然後我打開program.cs這給了我下面的代碼:編譯時間錯誤「名稱'pubnub'在當前上下文中不存在」

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Threading.Tasks; 
    using System.Windows.Forms; 

    namespace feedtest 
    { 
     static class Program 
     { 
      /// <summary> 
      /// The main entry point for the application. 
      /// </summary> 
      [STAThread] 
      static void Main() 
      { 
       Application.EnableVisualStyles(); 
       Application.SetCompatibleTextRenderingDefault(false); 
       Application.Run(new Form1()); 
      } 

     } 
    } 

我使用包管理器安裝和我已經添加了using參考,但是這就是事情變酸。該first step in the documentation說要「初始化API」使用下面一行:

Pubnub pubnub = new Pubnub("demo", "demo");

我終於想通了,我把在Static Void Main()但現在它就像我要下去了兔子洞。從文檔修改一些內容,而忽略其他人後,我在以下點:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using PubNubMessaging.Core; 

namespace feedtest 
{ 
    static class Program 
    { 
     private static string result; 

     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 

      Pubnub pubnub = new Pubnub("demo", "demo"); 

      pubnub.Subscribe<string>(
       "my_channel", 
       DisplaySubscribeReturnMessage, 
       DisplaySubscribeConnectStatusMessage, 
       DisplayErrorMessage 
      ); 


     } 

     static void DisplayErrorMessage(PubnubClientError obj) 
     { 
      throw new NotImplementedException(); 
     } 

     static void DisplaySubscribeConnectStatusMessage(string obj) 
     { 
      throw new NotImplementedException(); 
     } 

     static void DisplaySubscribeReturnMessage(string obj) 
     { 
      Console.WriteLine("SUBSCRIBE REGULAR CALLBACK:"); 
      Console.WriteLine(result); 
      if (!string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(result.Trim())) 
      { 
       List<object> deserializedMessage = pubnub.JsonPluggableLibrary.DeserializeToListOfObject(result); 
       if (deserializedMessage != null && deserializedMessage.Count > 0) 
       { 
        object subscribedObject = (object)deserializedMessage[0]; 
        if (subscribedObject != null) 
        { 
         //IF CUSTOM OBJECT IS EXCEPTED, YOU CAN CAST THIS OBJECT TO YOUR CUSTOM CLASS TYPE 
         string resultActualMessage = pubnub.JsonPluggableLibrary.SerializeToJsonString(subscribedObject); 
        } 
       } 
      } 
     } 
    } 

} 

的當前錯誤是

名稱「pubnub」不會在目前情況下

存在

enter image description here

如何解決這個問題?我是不是該?我甚至關閉?我是否選錯了起點?有誰知道有什麼好的,簡單,pubnub教程?

+0

對不起,但這真的不是一個偉大的標題問題。 –

+1

這裏的問題不是一個pubnub問題,而是c#。在同時學習pubnub之前,您可能會從學習c#基礎知識中獲得一些里程碑。 – recursive

+1

請將您的問題標題描述爲您所遇到的實際問題或您要問的問題。你在這裏已經足夠長,知道書寫的標題完全沒有意義 - 對於未來的讀者來說,在尋找問題解決方案時發現它在搜索結果中有什麼可能的價值?而且您在這裏也有足夠的經驗,知道要求我們找到教程的問題也是無關緊要的。 (我首先建議你在使用C#教程之前,先關心Pubnub吧。) –

回答

1

pubnub超出了您嘗試使用它的範圍。像你一樣使用它作爲局部變量,你需要用你使用它的相同方法來聲明它。

如果你想在兩種方法中使用相同的pubnub,那麼你需要把它放在別的地方或通過它。大概將它聲明爲程序中的靜態字段。

private static Pubnub pubnub = new Pubnub("demo", "demo"); 
相關問題