我正在尝试将一行文本作为字符串分配,因此该字符串可以在消息框中使用,尽管在执行该方法时该字符串无法显示在消息框中。
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);
}
答案 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。访问类成员是最佳做法。