2015-02-06 141 views
-4
private void button2_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog openFileDialog = new OpenFileDialog(); 
    openFileDialog.InitialDirectory = "c:\\"; 
    openFileDialog.Filter = "|*.csv"; 
    DialogResult result = openFileDialog.ShowDialog(); 
    // if user clicks on ok button that path 
    // will be copied path textbox 
    if (result == DialogResult.OK) 
    { 
     String name = openFileDialog.FileName; 
     UpperTextbox.Text = File.ReadAllText(name); 
    } 
} 

如何使變量「名」全球讓每一個方法使用可變如何使局部變量的一類爲全局變量

回答

1

嘗試下面的下面,在類的範圍內聲明的文件名而不是功能範圍。查看以下鏈接更多的解釋變量範圍http://www.codecandle.com/articles/csharp/variables/variable-scope.html

string Filename {get; set;} 

private void button2_Click(object sender, EventArgs e) 
    { 
     OpenFileDialog openFileDialog = new OpenFileDialog(); 
     openFileDialog.InitialDirectory = "c:\\"; 
     openFileDialog.Filter = "|*.csv"; 
     DialogResult result = openFileDialog.ShowDialog(); 
     if (result == DialogResult.OK)//if user clicks on ok button that path will be copied path textbox 
     { 
      Filename = openFileDialog.FileName; 
      UpperTextbox.Text = File.ReadAllText(name); 
     } 
+0

非常感謝您的建議。如果我們將這個變量聲明爲類變量,那麼代碼就完美了。 – 2015-02-07 23:43:05

0

我不知道你的意圖或實際意思,但我相信它是這樣的:

public class Example 
{ 
     private string id; 
     public Example(string id) 
     { 
      this.id = id; 
     } 

     public void Test() 
     { 
      // Holds initial value from Constructor. 
      Console.WriteLine(id); 

      // Modified to new value. 
      id = "7"; 
      Console.WriteLine("7"); 
     } 
} 

因此,在本質正在發生的事情在這裏,id有一個初始值,在object的持續時間內將包含該值。除非對象內的另一個方法修改該值,否則內存將反映新值。

你也可以在本質上做一個屬性

public class Container 
{ 
    public string Id {get; set; } 
} 

public class Example 
{ 
    private Container container; 
    public Example(Container container) 
    { 
      this.container = container; 
    } 

    public void Tester() 
    { 
      // Same Value when object created. 
      Console.WriteLine(container.Id); 

      // Modified Value: 
      container.Id = "New Value"; 
    } 
} 

這是假設您可以更改該值,但是您可以通過其他方式執行此操作。如果你有一個值永遠不會改變。您可能只需要使用const

private const string id = "Universal Value"; 

對於對象id的生活總會代表Universal Value。希望這有所幫助,一些澄清將有所幫助。