Как сохранить строку из моего приложения Windows Form - PullRequest
0 голосов
/ 24 марта 2012

Я новичок в формах Windows, и мне нужно сохранить строку, которую я могу проверить в своей программе. Я создал DataAccessClass.cs, Controller.cs, Entity.cs, У меня есть Form1.cs и много пользовательских элементов управления. Так что в основном один из пользовательских элементов управления получает строку в текстовом поле, но другим классам в моей программе или другим элементам управления может потребоваться проверить значение этого захвата строки раньше. Мне нужно сделать что-то вроде

if([theStringThatMustBeAccessibleThoriugOut].Equals("Something"))
 {
      //do something
 }

Опять же, я новичок, и мне хотелось бы посоветовать, где объявить эту переменную, как получить к ней доступ и как сохранить ее из любого места и что она будет доступна где угодно. Я знаю, что в asp.net я использовал Session["Blah"], и я мог бы получить его в любой момент в течение всей сессии. Но в форме Windows я не знаю, как это сделать ..

Любая помощь будет высоко ценится.

1 Ответ

4 голосов
/ 24 марта 2012

Вы всегда можете использовать статическую переменную некоторого класса (которую я просто назову «Global»):

public class Global {
  public static string TheString { get; set; }
}

К которой затем можно получить доступ из любого места как Global.TheString.

Будьте осторожны: статические переменные имеют свою стоимость.В частности, они могут оказать негативное влияние на безопасность и тестируемость.По некоторым причинам не для использования статических переменных см. Следующее:

http://hardcoded -dev.blogspot.com / 2009/05 / bad-habits-static-variables.html

http://gbracha.blogspot.com/2008/02/cutting-out-static.html

Если вы хотите избежать некоторых (но не всех) проблем, связанных со статикой:

public class Global {
  private static Global _global = new Global();
  public static Global Instance { get { return _global; } set { _global = value; } }
  public TheString { get; set; }
}

Обратите внимание, что TheString больше не статичен, и Global.Instance можно изменить во время выполнения.Чтобы получить доступ к вашей специальной строке, теперь вы можете использовать Global.Instance.TheString.

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