Cấu hình Trình quản lý.AppSinstall ["blah"] sẽ đưa ra một ngoại lệ nếu "blah" không tồn tại trong web / app.config?
Lời xin lỗi chân thành cho câu hỏi siêu lười biếng.
NameValueCollection.Item
tài sản ...
Cấu hình Trình quản lý.AppSinstall ["blah"] sẽ đưa ra một ngoại lệ nếu "blah" không tồn tại trong web / app.config?
Lời xin lỗi chân thành cho câu hỏi siêu lười biếng.
NameValueCollection.Item
tài sản ...
Câu trả lời:
Không, nó trở lại null
.
Từ tài liệu MSDN cho NameValueCollection.Item property (String) :
Thận trọng
Thuộc tính này trả về null trong các trường hợp sau: 1) nếu không tìm thấy khóa được chỉ định; và 2) nếu tìm thấy khóa được chỉ định và giá trị liên quan của nó là null. Khách sạn này không phân biệt giữa hai trường hợp.
Không, nó trở lại null
.
Ứng dụng Cài đặt là một NameValueCollection - theo sự thận trọng trên trang NameValueCollection.Get :
Phương thức này trả về một tham chiếu null (Không có gì trong Visual Basic) trong các trường hợp sau: 1) nếu không tìm thấy khóa được chỉ định; và 2) nếu tìm thấy khóa được chỉ định và giá trị liên quan của nó là tham chiếu null (Không có gì trong Visual Basic). Phương pháp này không phân biệt giữa hai trường hợp.
Không, nó trở lại null
.
ConfigurationManager.AppSettings
là một NameValueCollection
- từ tài liệu MSDN :
Phương thức Get không phân biệt giữa null được trả về vì không tìm thấy khóa được chỉ định và null được trả về vì giá trị được liên kết với khóa là null.
(nhấn mạnh của tôi)
Các câu trả lời khác tham khảo tài liệu cho thuộc tính Item. Có thể không rõ ràng ngay lập tức tại sao chúng có liên quan khi xem đoạn mã sau.
ConfigurationManager.AppSettings["blah"]
Cú pháp dấu ngoặc vuông được sử dụng trong C # để truy cập các bộ chỉ mục. Đây là các thuộc tính đặc biệt cho phép một lớp được lập chỉ mục theo cùng một cách mà một mảng có thể. Nhìn vào định nghĩa của thuộc tính NameValueCollection.Item , bạn sẽ thấy rằng nó không sử dụng cú pháp thuộc tính thông thường. Từ khóa này và các tham số bộ chỉ mục được sử dụng để xác định thuộc tính này là một bộ chỉ mục.
public string this[
string name
] { get; set; }
Trong tài liệu này, các bộ chỉ mục được đặt tên ngầm định là Item và các tham số được bao quanh bởi dấu ngoặc vuông.
Tôi không rõ tại sao có câu trả lời tham chiếu phương thức Get - có thể người này gọi người kia?
Bằng mọi giá, để trả lời câu hỏi ...
Không. Một ngoại lệ sẽ không được ném nếu bạn truy cập khóa không tồn tại - null sẽ được trả về.
Đây là phần có liên quan từ tài liệu thuộc tính NameValueCollection.Item .
Thuộc tính này trả về null trong các trường hợp sau: 1) nếu không tìm thấy khóa được chỉ định; và 2) nếu tìm thấy khóa được chỉ định và giá trị liên quan của nó là null. Khách sạn này không phân biệt giữa hai trường hợp.
Chỉnh sửa: điều này rõ ràng là sai. Còn lại cho các ý kiến hữu ích dưới đây.
NameValueCollection
không thể tìm thấy - tức là hệ thống không thể tìm thấy bất kỳ cài đặt nào . Tên Bộ sưu tập Giá trị không ném ngoại lệ khi bạn cố truy xuất một giá trị duy nhất không tồn tại ..