2017-09-13 77 views
0

我知道從類似問題提供的answer編譯正確。但是,我無法訪問想要在運行時訪問的所需對象。我碰到下面的代碼爲「未設置爲一個實例對象對象引用」:從同一解決方案中的其他命名空間訪問活動對象

namespace MyNamespace1 { 

    public static class Program { 

     public static User CurrentUser; 

     public static void Main(string[] args) { 

      CurrentUser = new User() { UserName = "someuser" }; 

      Console.WriteLine(CurrentUser.UserName); 

      Console.ReadKey(); 

     } 
    } 
} 

namespace MyNamespace2 { 

    public partial class ThisIsAForm : Form { 

     private void justAButton_Click(object s, EventArgs e) { 

      var uname = MyNamespace1.Program.CurrentUser.UserName; 

      MessageBox.Show(uname); 

     } 
    } 
} 

我啓動控制檯應用程序MyNamespace1,認爲它將實例「當前用戶」,我相信它。

現在,我從MyNamespace2啓動EXE文件。然而,點擊它的justabutton對象後,我得到錯誤告訴我,我試圖訪問的對象沒有實例化。

非常感謝您提前。對不起,如果我在這裏失去了一些東西,這可能對我來說太愚蠢了。

+1

您的程序不共享相同的內存。當您並行運行程序時,它們可能會使用相同的代碼,但它們不會彼此瞭解或能夠訪問以使用相同的內存。 – Romoku

+0

謝謝你,Romoku。所以,我猜他們沒有辦法彼此交流,或者是在那裏?無論如何,謝謝你的澄清。 – morethanyell

回答

0

.NET Framework Design Guidelines建議我們按照這個命名空間的約定:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>] 

這將管理scope幫助。

如果意圖從單獨的exe進行通信,還有進程間通信。

相關問題