Tại sao điểm vào phương pháp chính trong hầu hết các chương trình C# tĩnh?Tại sao điểm vào phương pháp chính trong hầu hết các chương trình C# tĩnh?
Trả lời
Để gọi phương thức thể hiện, bạn cần một phiên bản của đối tượng. Điều này có nghĩa là để bắt đầu chương trình của bạn, CLR sẽ cần tạo một cá thể nói Program
để gọi phương thức Main
. Do đó các nhà xây dựng của Program
sẽ chạy trước Main
mà đánh bại mục đích của việc có một hoàn toàn chính.
+1 Giải thích rõ ràng. –
Nhưng điều này có nghĩa là hàm tạo tĩnh vẫn được gọi? –
@Yuriy, đúng vậy. Nó được gọi cụ thể như trong phần 10.11 của thông số ngôn ngữ C#. Tôi không biết chính xác lý do tại sao quyết định này được thực hiện (có thể đã bị buộc phải từ cấp CLR) – JaredPar
Vì nếu không nó sẽ phải tạo một đối tượng và chạy hàm tạo có thể gây ra các tác dụng phụ tiêu cực.
Làm cách nào bạn có thể tạo cá thể lớp học của mình trước chính bằng cách khác?
Giống như cách bạn gọi chính. Bạn không - thời gian chạy thực hiện rất nhiều thứ trước khi chính, tải các lớp và tạo các đối tượng. –
Khái niệm bạn chỉ có một phiên bản tĩnh. Và một phương pháp tĩnh ánh xạ tốt đến thành ngữ của một điểm nhìn chằm chằm duy nhất cho một chương trình. Các nhà thiết kế ngôn ngữ có thể đã tạo ra một lớp chương trình đặc biệt để sử dụng với một phương thức chính nhưng đã chọn tạo một hàm tĩnh đơn lẻ làm điểm vào. Trên một số cấp độ của nó thực sự chỉ là một sự lựa chọn thiết kế.
Phương pháp tĩnh có thể được thực hiện mà không cần tạo một cá thể. Theo quy ước, họ có phương thức main
làm phương thức mặc định để gọi.
.NET runtime
gọi phương thức Main
. (Lưu ý: Chính cũng có thể được gọi từ nơi khác, ví dụ: từ mã Main() trong một phương thức khác của ExampleClass.) Từ khóa static
làm cho phương thức có thể truy cập được mà không cần instance
của ExampleClass
. Vì vậy, phương pháp chính là một điểm vào và phải được khai báo tĩnh.
Nếu không, chương trình sẽ yêu cầu một trường hợp, nhưng bất kỳ trường hợp nào sẽ yêu cầu một chương trình.
Để tránh điều đó irresolvable circular dependency
chính được sử dụng như một điểm vào
tham khảo: http://en.wikipedia.org/wiki/C_Sharp_(programming_language
Tôi muốn biến những câu hỏi xung quanh. Lợi ích hấp dẫn của việc thực hiện tính năng cho phép chính là một phương pháp thể hiện là gì? Tính năng đắt tiền; nếu không có lợi ích hấp dẫn, chúng sẽ không được triển khai.
Bạn có lý do thực sự hay không tại sao Chính nên được phép là phương pháp thể hiện?
đối với mọi đối tượng của lớp chứa phương pháp chính và các biến và phương pháp khác, có các bản sao riêng biệt của từng biến và phương thức chứa tất cả các đối tượng. đối tượng chúng ta phải tạo phương thức chính là tĩnh.
- 1. Tại sao hầu hết các phương pháp của System.Array là tĩnh?
- 2. Tránh điểm chính (điểm vào) trong chương trình C
- 3. Chương trình không chứa một phương pháp 'Main' tĩnh thích hợp cho một điểm vào
- 4. Tại sao chỉ mục mảng là 0 dựa trên hầu hết các ngôn ngữ lập trình?
- 5. Python Phương pháp tĩnh, tại sao?
- 6. động Hầu hết các ngôn ngữ lập trình năng động
- 7. Lớp C# - Tại sao có quá nhiều phương pháp tĩnh?
- 8. Có thể tồn tại hai phương pháp chính trong một chương trình Java không?
- 9. Tại sao đa thừa kế không được hỗ trợ trong hầu hết ngôn ngữ lập trình?
- 10. Tại sao các phương pháp tĩnh cần được đưa vào lớp học?
- 11. Tại sao khó viết các chương trình C di động?
- 12. Tại sao phương pháp tĩnh ghi đè được nêu trong C#
- 13. Phương pháp tĩnh trong PHP
- 14. Lập trình giảng dạy và các phương pháp chính thức
- 15. Threading và tĩnh phương pháp trong C#
- 16. Tại sao hầu hết mã điều khiển mẫu MVC trả về ActionResult?
- 17. Tại sao sử dụng singleton thay vì phương pháp tĩnh?
- 18. Trợ giúp với phương pháp tĩnh C++
- 19. Phương pháp chính trong lớp tĩnh bên trong.
- 20. Tại sao hầu hết các ngôn ngữ hướng đối tượng không hỗ trợ coroutines?
- 21. Hầu hết các công ty "lớn" đều thích WISA hơn LAMP? Tại sao?
- 22. Tại sao các phương thức mở rộng C# phải được định nghĩa trong các lớp tĩnh?
- 23. Tại sao phương pháp tĩnh của tôi ẩn phương pháp thể hiện của tôi?
- 24. Tại sao hầu hết các ứng dụng iPhone không hoạt động lộn ngược?
- 25. Tại sao Java được hầu hết các ngân hàng sử dụng?
- 26. Các phương pháp chính thức của việc xác minh chương trình có một vị trí trong ngành không?
- 27. định loạt các phương pháp tĩnh trong C++
- 28. gọi phương pháp khác từ phương pháp chính trong java
- 29. Phương pháp hết thời gian trong java
- 30. Tại sao phương pháp chính là riêng tư?
Đây là một câu hỏi hay, có thể không có câu trả lời thực sự thỏa đáng. Rất nhiều thứ chạy trước khi Main được gọi, và chúng có thể bao gồm nhiều hàm tạo đối tượng như bạn muốn. Nhưng vẫn còn, tôi nghĩ rằng nếu các nhà xây dựng cho các đối tượng chương trình được một ngoại lệ bộ nhớ, sau đó máy tính của bạn là có một * thực sự * ngày xấu! –
Bởi vì bạn không muốn làm hoảng sợ các lập trình viên C++ và Java quá nhiều. – zaratustra