2011-06-26 52 views
0

我想將一行文本作爲字符串分配,因此可以在消息框中使用該字符串,但該字符串在執行該方法時無法顯示在消息框中。在C中獲取和設置的問題#

public string version { get; set; } 

public void GetVersion() 
{ 
    var version = File.ReadAllText("version.txt"); 
} 


private void SetBalloonTip() 
{ 
    notifyIcon1.Icon = SystemIcons.Exclamation; 
    notifyIcon1.BalloonTipTitle = "Test"; 
    notifyIcon1.BalloonTipText = "This is version " + version; 
    notifyIcon1.BalloonTipIcon = ToolTipIcon.Error; 
    this.Click += new EventHandler(button1_Click); 
} 

回答

5

刪除var

version = File.ReadAllText("version.txt"); 

通過添加var(或任何變量類型爲此事)你創建局部變量,而你要分配的類成員。

有時候也會發生這種情況,我認爲這是C#的負面影響,因爲我期望編譯這樣的東西時至少會有警告。

+1

爲什麼你會期待警告?聲明一個局部變量並將函數的返回值賦值給該變量是完全合法的。究竟是什麼會引發警告? –

+0

@Cody當局部變量與「global」變量名稱相同時,又稱爲類成員.. –

2

你正在聲明一個局部變量「var version」,它與你的屬性「version」分開。只需將「var version」替換爲「this.version」或者「version」即可。

2

var version = ...陰影具有局部變量的屬性;意思是,分配存儲在名爲version的本地變量中,而不是名爲version的屬性。

this.version = ...會做你想做的。順便說一下,在C#中的約定之外,局部變量以小寫字母開頭,但是屬性以大寫字母開頭 - 像這樣的約定可能有助於緩解您在此處遇到的陰影問題。

0

如果您在此處使用var,您還應該瞭解其目的和含義。不要使用任何你不熟悉的東西。這只是拇指規則。

如上所述,使用適當的外殼爲班級成員和訪問班級成員與這個。是最佳實踐。