Sử dụng lớp tĩnh công khai và truy cập lớp đó từ mọi nơi.
public static class MyGlobals {
public const string Prefix = "ID_"; // cannot change
public static int Total = 5; // can change because not const
}
sử dụng như vậy, từ trang chủ hoặc bất cứ nơi nào:
string strStuff = MyGlobals.Prefix + "something";
textBox1.Text = "total of " + MyGlobals.Total.ToString();
Bạn không cần phải thực hiện một thể hiện của lớp; thực ra bạn không thể vì nó tĩnh.
new
Chỉ cần sử dụng trực tiếp. Tất cả các thành viên bên trong một lớp tĩnh cũng phải là tĩnh. Tiền tố chuỗi không được đánh dấu tĩnh vì const
hoàn toàn tĩnh theo bản chất.
Lớp tĩnh có thể ở bất kỳ đâu trong dự án của bạn. Nó không phải là một phần của Global.asax hoặc bất kỳ trang cụ thể nào vì nó là "toàn cầu" (hoặc ít nhất là gần như chúng ta có thể nhận được khái niệm đó trong các thuật ngữ hướng đối tượng.)
Bạn có thể tạo ra nhiều các lớp tĩnh như bạn thích và đặt tên cho chúng bất cứ điều gì bạn muốn.
Đôi khi, người lập trình muốn nhóm các hằng số của họ bằng cách sử dụng các lớp tĩnh lồng nhau. Ví dụ,
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";
}
}
và truy cập chúng như vậy:
MyDbCommand proc = new MyDbCommand(Globals.DbProcedures.Sp_Get_Addresses);
proc.Execute();
//or
string strCommand = Globals.Commands.Go;
Nguồn
2010-03-15 06:23:15
Có một lý do đặc biệt bộ nhớ cache/phiên sẽ không làm việc?Về mặt kỹ thuật, ứng dụng là một đối tượng Session/Cache và vì vậy nếu bạn đang sử dụng nó (theo cách không tĩnh), bạn đã sử dụng Sessions. Nếu phần cụ thể của phiên của nó có thể được giải quyết với bộ nhớ cache cấp ứng dụng. – GrayWizardx
có vì tôi cần lưu trữ một danh sách lớn và bộ nhớ cache chỉ có 16MB nên tôi không muốn lãng phí tài nguyên cahe ... – scatman
Bạn có muốn một đĩa đơn không? Một đối tượng được chia sẻ bởi * tất cả * chủ đề xử lý * tất cả * yêu cầu? Hay bạn chỉ muốn một cách chia sẻ dữ liệu giữa một MasterPage và một ContentPage. Nếu đó là sau đó các biến toàn cầu chắc chắn không phải là một giải pháp tốt. – tarn