Genel statik bir sınıf kullanın ve her yerden erişin. her yerde ana sayfası veya gelen, bu nedenle gibi kullanılabilir
public static class MyGlobals {
public const string Prefix = "ID_"; // cannot change
public static int Total = 5; // can change because not const
}
: Sen sınıfının bir örneğini yapmak gerekmez
string strStuff = MyGlobals.Prefix + "something";
textBox1.Text = "total of " + MyGlobals.Total.ToString();
; Aslında yapamazsın çünkü statik.
new
Sadece doğrudan kullanın. Statik sınıf içindeki tüm üyeler de statik olmalıdır. Önek dizesi statik olarak işaretlenmez, çünkü const
, doğası gereği örtük olarak statiktir.
Statik sınıf projenizde herhangi bir yerde olabilir. Global.asax'ın ya da herhangi bir sayfanın bir parçası olmak zorunda değil çünkü "global" (ya da en azından nesneye yönelik terimlerle bu kavramı alabildiğimiz kadar yakın.)
İstediğiniz gibi statik sınıflar ve istediğiniz her şeyi adlandırın. Bazen, programcılar sabit iç içe statik sınıflar kullanarak sabitlerini gruplamak isterler. Örneğin,
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";
}
}
için ve böylece gibi bunlara erişmek:
MyDbCommand proc = new MyDbCommand(Globals.DbProcedures.Sp_Get_Addresses);
proc.Execute();
//or
string strCommand = Globals.Commands.Go;
özel bir sebebi önbellek/oturum alışkanlık çalışmak var mı?Teknik olarak Uygulama bir Oturum/Önbellek nesnesidir ve bu nedenle (statik olmayan bir şekilde) kullanıyorsanız, zaten Oturumları kullanırsınız. Eğer oturuma özgü kısmı ise, bu, Uygulama seviyesi önbelleği ile adreslenebilir. – GrayWizardx
evet çünkü büyük bir liste saklamak gerekiyor ve önbellek sadece 16MB olduğunu, bu yüzden cahe kaynak harcamak istemiyorum ... – scatman
Bir singleton ister misin? * Tüm * iş parçacığı * tüm * istekleri tarafından paylaşılan tek bir nesne mi? Veya sadece bir MasterPage ile bir ContentPage arasında bir paylaşım yolu istiyor musunuz? Eğer daha geç ise, küresel değişkenler kesinlikle iyi bir çözüm değildir. – tarn