在C#中获取和设置的问题

时间:2011-06-26 13:48:48

标签: c# .net windows

我正在尝试将一行文本作为字符串分配,因此该字符串可以在消息框中使用,尽管在执行该方法时该字符串无法显示在消息框中。

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);
}

4 个答案:

答案 0 :(得分:5)

删除var

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

通过添加var(或任何类型的变量类型),您将创建局部变量,而您想要分配类成员。

有时发生在我身上,我认为这是C#的缺点,因为在编译这样的事情时我至少会发出警告。

答案 1 :(得分:2)

您正在使用“var version”声明一个局部变量,该变量与您的属性“version”分开。只需将“var version”替换为“this.version”或“version”。

答案 2 :(得分:2)

var version = ... 阴影带有局部变量的属性;意思是,赋值存储在名为version的局部变量中,而不是名为version的属性。

this.version = ...会做你想做的事。

顺便说一句,在C#中不常见,局部变量以小写字母开头,但属性以大写字母开头 - 这些约定可能有助于缓解您在此处遇到的阴影问题。

答案 3 :(得分:0)

如果您在这里使用 var ,您还应该了解其目的和含义。永远不要使用你不熟悉的东西。这只是拇指规则。

如上所述,对于类成员使用适当的大小写并使用 this。访问类成员是最佳做法。