Указатель чтения перемещается после последнего прочитанного байта / символа. Используйте метод seek()
для перемотки указателя чтения к началу.
Использовать открытый статический класс и получить доступ к нему из любого места.
public static class MyGlobals {
public const string Prefix = "ID_"; // cannot change
public static int Total = 5; // can change because not const
}
используется так: от главной страницы или где угодно:
string strStuff = MyGlobals.Prefix + "something";
textBox1.Text = "total of " + MyGlobals.Total.ToString();
Вам не нужно создавать экземпляр класса; на самом деле вы не можете, потому что это статично. new
Просто используйте его напрямую. Все члены внутри статического класса также должны быть статическими. Строка Prefix не помечена как статическая, поскольку const
неявно статична по своей природе.
Статический класс может быть в любом месте вашего проекта. Он не должен быть частью Global.asax или какой-либо конкретной страницы, потому что он «глобальный» (или, по крайней мере, как можно ближе к этой концепции в объектно-ориентированных терминах.)
Вы можете сделайте столько статических классов, сколько захотите, и назовите их, как хотите.
Иногда программисты любят группировать свои константы с помощью вложенных статических классов. Например,
public static class Globals {
public static class DbProcedures {
public const string Sp_Get_Addresses = "dbo.[Get_Addresses]";
public const string Sp_Get_Names = "dbo.[Get_First_Names]";
}
public static class Commands {
public const string Go = "go";
public const string SubmitPage = "submit_now";
}
}
и получить к ним доступ так:
MyDbCommand proc = new MyDbCommand( Globals.DbProcedures.Sp_Get_Addresses );
proc.Execute();
//or
string strCommand = Globals.Commands.Go;
Вы можете создать базовый класс в своем приложении, которое наследуется от System.Web.UI.Page. Пусть все ваши страницы наследуются от вновь созданного базового класса. Добавьте свойство или переменную в ваш базовый класс с предполагаемым модификатором доступа, чтобы он был доступен со всех ваших страниц в приложении.
/// <summary>
/// Contains global variables for project.
/// </summary>
public static class GlobalVar
{
/// <summary>
/// Global variable that is constant.
/// </summary>
public const string GlobalString = "Important Text";
/// <summary>
/// Static value protected by access routine.
/// </summary>
static int _globalValue;
/// <summary>
/// Access routine for global variable.
/// </summary>
public static int GlobalValue
{
get
{
return _globalValue;
}
set
{
_globalValue = value;
}
}
/// <summary>
/// Global static field.
/// </summary>
public static bool GlobalBoolean;
}
Ответ второго jdk: любой публичный статический член любого класса вашего приложения можно рассматривать как «глобальную переменную».
Однако обратите внимание, что это приложение ASP.NET, и как такой, это многопоточный контекст для ваших глобальных переменных. Поэтому вам следует использовать механизм блокировки при обновлении и / или чтении данных в / из этих переменных. В противном случае вы можете получить свои данные в поврежденном состоянии.
Просто объявите переменную в начале класса.
, например. для строковой переменной:
public partial class Login : System.Web.UI.Page
{
public string sError;
protected void Page_Load(object sender, EventArgs e)
{
//Page Load Code
}