Как вызвать текст в public void PassValue(string) в private void Form1_Load()

#c# #winforms #visual-studio-2012

#c# #winforms — формы #visual-studio-2012

Вопрос:

Мне нужна помощь. В (strvalue = "Hello")

 public void PassValue(string strValue)
 

Почему я не могу использовать этот текст в приведенном ниже методе?

 private void Form1_Load(object sender, EventArgs e)
 

Произойдет ошибка:

«Имя «strValue» не существует в текущем содержимом».

 private void Form1_Load(object sender, EventArgs e)
{

  label1.text = strValue;
  //strValue does not exist
}

 public void PassValue(string strValue )
{

   strValue = "Hello"; 
}
 

Ожидаемый результат, который я ищу, — это strValue , который можно прочитать private void Form1_Load(object sender, EventArgs e) .

Комментарии:

1. Чего вы пытаетесь достичь? Это не похоже на правильный способ сделать это. Почему вы не принимаете это значение в качестве параметра конструктора? Во всяком случае, strValue он ограничен телом PassValue , поэтому Form1_Load не может его видеть.

Ответ №1:

Вы можете сохранить его как переменную-член, а затем установить его при необходимости:

 private string m_StrValue;

private void Form1_Load(object sender, EventArgs e)
{

  label1.text = m_StrValue;
}

public void PassValue(string strValue )
{

  m_StrValue = strValue;
}