Một tính năng tiểu thuyết của C# là nó cũng có thể viết một tĩnh không có tham số nhà xây dựng cho một lớp học. Như vậy
một nhà xây dựng được thực hiện chỉ một lần, không giống như các nhà thầu viết như vậy đến nay, đó là trường hợp nhà thầu
mà được thực hiện bất cứ khi nào một đối tượng của lớp đó được tạo ra:
lớp MyClass
{
tĩnh MyClass()
{
/ / khởi tạo mã
}
/ / phần còn lại của lớp học định nghĩa
}
Một lý do để viết một nhà xây dựng tĩnh là nếu lớp học của bạn có một số lĩnh vực tĩnh hoặc thuộc tính cần phải
khởi tạo từ một nguồn bên ngoài trước khi các lớp học đầu tiên được sử dụng.
The net runtime làm cho không có bảo đảm về khi một nhà xây dựng tĩnh sẽ được thực hiện, do đó bạn nên
không đặt bất kỳ mã trong đó phụ thuộc vào nó được thực hiện tại một thời điểm cụ thể (ví dụ:, khi một hội đồng
được nạp). Cũng không phải là nó có thể để dự đoán theo thứ tự các nhà thầu tĩnh của các lớp khác nhau sẽ thực hiện.
Tuy nhiên, những gì đảm bảo là rằng các nhà xây dựng tĩnh sẽ chạy tối đa một lần, và rằng nó sẽ
gọi trước khi mã của bạn làm cho bất kỳ tham chiếu đến lớp. Trong C#, các nhà xây dựng tĩnh được thực hiện thường
ngay lập tức trước khi cuộc gọi đầu tiên, cho bất kỳ thành viên của các lớp học.
Lưu ý rằng các nhà xây dựng tĩnh không có bất kỳ công cụ sửa đổi quyền truy cập. Nó không bao giờ được gọi là bởi bất kỳ mã C# khác,
nhưng luôn luôn bằng thời gian chạy net khi các lớp học được tải, vì vậy bất kỳ truy cập công cụ sửa đổi như publicor riêng
sẽ là vô nghĩa. Đối với lý do này, các nhà xây dựng tĩnh có thể không bao giờ mất bất kỳ tham số nào, và có
có thể là chỉ có một nhà xây dựng tĩnh cho một lớp học. Nó cũng phải được rõ ràng rằng một nhà xây dựng tĩnh có thể truy cập
chỉ có thành viên tĩnh, không ví dụ thành viên, của lớp học
nó có thể có một nhà xây dựng tĩnh và một nhà xây dựng trường hợp tham số zero được xác định trong cùng một
lớp. Mặc dù danh sách tham số là giống hệt nhau, có là không có xung đột bởi vì các nhà xây dựng tĩnh là
thực hiện khi các lớp học được tải, nhưng các nhà xây dựng trường hợp được thực hiện bất cứ khi nào một thể hiện được tạo ra.
Vì vậy, có là không có sự nhầm lẫn về nhà xây dựng được thực hiện hoặc khi.
nếu bạn có nhiều hơn một lớp mà có một nhà xây dựng tĩnh, các nhà xây dựng tĩnh sẽ được thực thi
fi rst là không xác định. Vì vậy, bạn nên không đặt bất kỳ mã trong một nhà xây dựng tĩnh mà phụ thuộc vào khác tĩnh
nhà thầu đã hoặc không có được thực hiện. Tuy nhiên, nếu bất kỳ lĩnh vực tĩnh đã được mặc định
giá trị, chúng sẽ được phân bổ trước khi các nhà xây dựng tĩnh được gọi là.
ví dụ sau minh hoạ việc sử dụng của một nhà xây dựng tĩnh. Nó được dựa trên ý tưởng của một chương trình có người sử dụng
sở thích (mà có lẽ là được lưu trữ trong một số tập tin cấu hình). Để giữ cho mọi thứ đơn giản, giả sử chỉ
ưu tiên một người sử dụng, một số lượng được gọi là BackColorthat có thể đại diện cho màu nền được sử dụng trong
ứng dụng. Bởi vì chúng tôi không muốn nhận được vào các chi tiết của văn bản mã để đọc dữ liệu từ thiết bị ngoài
nguồn ở đây, giả sử cũng là sở thích là để có một nền màu đỏ trên ngày trong tuần và màu xanh lá cây trên
cuối tuần. Tất cả các chương trình không là hiển thị các ưu đãi trong một cửa sổ giao diện điều khiển, nhưng đó là đủ để thấy một
nhà xây dựng tĩnh tại nơi làm việc
đang được dịch, vui lòng đợi..