Chúng tồn tại trong suốt thời gian tồn tại của AppDomain
. (Đối với các ứng dụng Windows, đó thường là thời gian tồn tại của quá trình; nó có thể không mặc dù, tùy thuộc vào chính xác những gì bạn đang làm. AppDomains
được tái chế định kỳ trong ASP.NET.)
Đừng nghĩ đến các biến tĩnh như được chia sẻ giữa các trường hợp - hãy nghĩ về chúng là thuộc loại loại hơn là bất kỳ trường hợp cụ thể nào. Điều này giúp bạn dễ dàng hiểu cách mọi thứ hoạt động khi bạn đôi khi không bao giờ tạo ra bất kỳ trường hợp nào.
Ví dụ:
class Test
{
static int x = 0;
static void Main()
{
x = 10;
Console.WriteLine(x);
}
}
Không có trường hợp xung quanh để "chia sẻ" Test.x
- nhưng đó là okay, vì nó kết hợp với loại Test
hơn với trường của Test
.
Bạn có thể cho rằng đây là một sự khác biệt khá tinh tế, nhưng đó là điều tôi thấy hữu ích.
Nguồn
2009-05-05 19:35:11
Tôi có xu hướng nghĩ về điều này "liên quan đến loại _and_ được chia sẻ giữa tất cả các trường hợp". –
@ Jelel: Nhưng điều đó vẫn không cho cảm giác sai lầm rằng các trường hợp có liên quan gì đến nó không? Bạn có thể tranh luận không kém hiệu quả rằng Test.x được chia sẻ trong tất cả các trường hợp của "chuỗi" :) –
Tôi có xu hướng nghĩ rằng các thành viên tĩnh có NOTHING để làm với các trường hợp khác với tên loại và xử lý truy cập sửa đổi, vì vậy tôi ' m với Jon hơn là Joel trên cái này. –