Проблема с получением и настройкой в ​​C # - PullRequest
0 голосов
/ 26 июня 2011

Я пытаюсь назначить строку текста в виде строки, чтобы ее можно было использовать в окне сообщения, хотя строка не отображается в окне сообщения при выполнении метода.

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 ]

5 голосов
/ 26 июня 2011

Удалите var:

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

Добавляя var (или любой тип переменной в этом отношении), вы создаете локальную переменную, в то время как вы хотите назначить член класса.

Иногда случается со мной, и я считаю это недостатком C#, так как я ожидаю хотя бы предупреждения при компиляции такой вещи.

2 голосов
/ 26 июня 2011

var version = ... shadows свойство с локальной переменной;Это означает, что назначение хранится в локальной переменной с именем version, а не в свойстве с именем version.

this.version = ... будет делать то, что вы хотите.

Кстати, изСоглашение в C #, локальные переменные начинаются с букв нижнего регистра, как и у вас, но свойства начинаются с заглавных букв - соглашения, подобные этим, могут помочь устранить проблемы с теневым копированием, которые вы здесь испытывали.

2 голосов
/ 26 июня 2011

Вы объявляете локальную переменную с помощью «var version», которая отделена от вашего свойства «version».Просто замените «var version» на «this.version» или просто «version».

0 голосов
/ 27 июня 2011

если вы используете var здесь, вы также должны знать о его назначении и значении.никогда не используйте то, с чем вы не знакомы.Это просто правило большого пальца.

Как упомянуто выше, использование надлежащего регистра для члена класса и доступ к члену класса с помощью this. являются лучшими практиками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...