Tôi đang cố gắng hiểu các cân nhắc thiết kế của nhóm đã tạo phương thức Environment.GetCommandLineArgs
.Environment.GetCommandLineArgs - tại sao nó là một phương pháp? Tại sao không phải là tài sản?
Nó có thể là thuộc tính tĩnh, rất giống như System.Web.HttpContext.Current
. Sau khi tất cả, giá trị trả về sẽ không thay đổi khi có sẵn. Vì vậy, nó giống như một tài sản của quá trình chạy hiện tại.
Tôi biết rằng bất kỳ thuộc tính nào trong .NET là đường cú pháp cho phương thức getter/setter. Nhưng đó là lý do chính xác để sử dụng một thuộc tính chứ không phải là một phương thức getter rõ ràng.
Hoặc có thể có điều gì đó tôi thiếu ở đây?
Bạn nghĩ sao?
Nhóm BCL tôn trọng sự khác biệt ngữ nghĩa giữa các thuộc tính và phương pháp. Các thuộc tính chỉ được sử dụng khi lập trình viên có thể/nên xem xét một cuộc gọi đến chúng tương đương với việc truy cập một trường. Trong trường hợp này, 'GetCommandLineArgs' không hoạt động theo cách đó, vì vậy nó là một phương thức. Hãy suy nghĩ về nó như là lấy hoặc tính toán giá trị một lần nữa mỗi lần. –