2012-01-16 42 views
0

我正在寫一個攝像頭的應用程序,我需要寫和讀大約15個變量。我有兩種形式,主窗口和選項窗口。當我救我的選擇我做這樣的事情:從另一個方法的列表中獲取變量?

string[] lines = {x , y, ..., z }; 

System.IO.File.WriteAllLines(@"config.cfg", lines); 

在我的主窗口中我使用的StreamReader函數讀取的變量:

public void Foo() 
{ 

    List<string> lines = new List<string>(); 

    while (!reader.EndOfStream) 
    { 
     lines.Add(reader.ReadLine()); 

     reader.Close(); 
    } 

    x = Convert.ToInt32(lines[0]); 
    y = Covert.ToString(lines[1]); 
    // and so on... 
} 

的問題是我不知道如何訪問x和另一種方法中的y。順便說一句:我宣佈所有我的變量公共靜態。任何人都可以幫忙嗎?

編輯

它是一個Windows窗體應用程序,這兩個窗口不會在同一時間存在。也許有人可以給我一個提示,如何使用不同的方法來存儲這些變量?我知道我唯一能做的就是使用MySQL數據庫存儲變量,但沒有多大意義。

我會試着澄清一下:我想要做的是將方法Foo中的xy傳遞給另一種方法。我不能使用全局變量,因爲從文件中讀取變量需要一個方法。

+0

你在哪裏宣佈x和y?爲什麼不把'string []行聲明爲public static? – 2012-01-16 15:39:25

+0

會設置X和Y作爲視圖狀態幫助?或者你的線陣列保存在視圖狀態 – Andres 2012-01-16 15:39:27

+0

嗯,我不知道如何開始回答你的問題。你所做的一切都是錯誤的,但它很難向你解釋... – Zruty 2012-01-16 15:40:10

回答

0

使用性質=>設置保存您的值,如果你需要它的下一次。 它很簡單,並幫助你避免一些問題

+0

好吧,在CodeProject上找到一個教程,並且幫了我很多!謝謝! – 2012-01-16 16:32:04

0

兩種形式是否同時存在?即在Skype你有你的主要Skype窗口和聊天窗口?

如果是這樣,只需創建一個CameraUpdated事件,將事件發送給任何訂閱者,那麼您可以將主窗口綁定到任何新的子窗口事件,以便通知它。

爲此,您需要創建一個自定義事件arg來傳遞數據,事件名稱和參數的委託,並在您的表單上顯示實際事件。

但是,如果一次只存在一種表單,您可以在內存中存儲數據,然後將其讀出(與您當前的實現非常相似),或者從一種表單切換到另一種表單時你傳入已經改變的數據。

最終我會盡量避免將全局樣式數據放在文件,內存或全局程序變量中,並選擇一些鬆散耦合的方法,但不知道您的實際實現難以爲特定解決方案提供建議。被聲明爲public static

+0

這兩種形式可能同時存在,但相機流關閉。這些設置在流重新打開時應用(變量應該保存fps值等)。如果可以給我看寫/讀變量的另一種方式,我會是gratefull – 2012-01-16 15:59:37

0

類成員與訪問:

ClassName.MemberName 
相關問題