Nói một cách cơ bản hơn, thông điệp có thể được tưởng tượng để nói:
Lớp 'Chương trình' của bạn dường như chỉ chứa các phương thức được khai báo là tĩnh và kết quả là nó không thể tham gia vào hệ thống phân cấp thừa kế. Khai báo nó dưới dạng tĩnh (hoặc được niêm phong nếu bạn đang nhắm mục tiêu một phiên bản .net cổ không hỗ trợ các lớp tĩnh) để phản ánh chính xác hơn tình cảm thiết kế của nó là gì
Đó là một đề xuất, để đánh dấu lớp của bạn là tĩnh vì nó chỉ chứa nội dung tĩnh. Điều này sẽ ngăn bất kỳ ai phạm sai lầm khi cố gắng thừa kế từ nó và nghĩ rằng sau đó họ có thể làm điều gì đó hữu ích với sự kế thừa với phiên bản kế thừa
Microsoft không đánh dấu nó là tĩnh đối với bạn vì không có gì đặc biệt về Chương trình; bạn có thể đặt các phương thức không tĩnh trong đó hoặc bạn có thể đặt các phương thức của bạn static void Main
vào một lớp khác, như Person, đó là khả thi.
class Person{
public string Name {get;set;}
static void Main(){
Person p = new Person();
p.Name = Console.ReadLine();
}
}
Điều này sẽ làm việc tốt; một lớp không phải tĩnh để lưu trữ điểm vào ứng dụng và trong trường hợp này, lớp không thể tĩnh vì nó không có thành viên tĩnh. Nó có thể (và là, trong chính) được khởi tạo trong chính. Nó không được gọi là Chương trình; không có lớp nào được gọi là Chương trình ở bất cứ đâu và ứng dụng nhỏ bé này vẫn sẽ chạy (không hoạt động nhiều ..)
Trong trường hợp của bạn, hãy làm như được đề xuất và thêm một công cụ sửa đổi tĩnh cho lớp của bạn, bởi vì nó sẽ làm cho chương trình của bạn được thiết kế mạnh mẽ hơn một chút, hoặc thêm một thành viên thể hiện nếu bạn có thể nghĩ ra một lý do hợp lệ để khởi tạo Chương trình hoặc bỏ qua thông báo và tiếp tục với lớp không tĩnh của bạn chỉ chứa các phương thức tĩnh - nó vẫn hoạt động