Global variables in c#.net

后端 未结 6 1686
长情又很酷
长情又很酷 2020-11-28 05:08

How can I set a global variable in a C# web application?

What I want to do is to set a variable on a page (master page maybe) and access this variable from any page.

6条回答
  •  日久生厌
    2020-11-28 05:41

    Use a public static class and access it from anywhere.

    public static class MyGlobals {
        public const string Prefix = "ID_"; // cannot change
        public static int Total = 5; // can change because not const
    }
    

    used like so, from master page or anywhere:

    string strStuff = MyGlobals.Prefix + "something";
    textBox1.Text = "total of " + MyGlobals.Total.ToString();
    

    You don't need to make an instance of the class; in fact you can't because it's static. new Just use it directly. All members inside a static class must also be static. The string Prefix isn't marked static because const is implicitly static by nature.

    The static class can be anywhere in your project. It doesn't have to be part of Global.asax or any particular page because it's "global" (or at least as close as we can get to that concept in object-oriented terms.)

    You can make as many static classes as you like and name them whatever you want.


    Sometimes programmers like to group their constants by using nested static classes. For example,

    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";
        }
    }
    

    and access them like so:

    MyDbCommand proc = new MyDbCommand( Globals.DbProcedures.Sp_Get_Addresses );
    proc.Execute();
    //or
    string strCommand = Globals.Commands.Go;
    

提交回复
热议问题