ConfigurationManager.AppSettings ["blah"] จะมีข้อยกเว้นหรือไม่หากไม่มี "blah" ในเว็บ / app.config
ขออภัยอย่างจริงใจสำหรับคำถามที่ขี้เกียจสุด ๆ
NameValueCollection.Item
ทรัพย์สิน ...
ConfigurationManager.AppSettings ["blah"] จะมีข้อยกเว้นหรือไม่หากไม่มี "blah" ในเว็บ / app.config
ขออภัยอย่างจริงใจสำหรับคำถามที่ขี้เกียจสุด ๆ
NameValueCollection.Item
ทรัพย์สิน ...
คำตอบ:
ไม่มันกลับnull
มา
จากเอกสาร MSDN สำหรับ NameValueCollection.Iem Property (String) :
ความระมัดระวัง
คุณสมบัตินี้จะคืนค่า null ในกรณีต่อไปนี้: 1) หากไม่พบคีย์ที่ระบุ และ 2) หากพบคีย์ที่ระบุและค่าที่เกี่ยวข้องเป็นโมฆะ คุณสมบัตินี้ไม่ได้แยกความแตกต่างระหว่างสองกรณี
ไม่มันกลับnull
มา
AppSettings เป็นNameValueCollection - ตามข้อควรระวังในหน้าNameValueCollection.Get :
วิธีนี้ส่งคืนการอ้างอิงที่เป็นโมฆะ (ไม่มีอะไรใน Visual Basic) ในกรณีต่อไปนี้: 1) ถ้าไม่พบคีย์ที่ระบุ และ 2) หากพบคีย์ที่ระบุและค่าที่เกี่ยวข้องคือการอ้างอิงว่าง (ไม่มีใน Visual Basic) วิธีนี้ไม่ได้แยกความแตกต่างระหว่างสองกรณี
ไม่มันกลับnull
มา
ConfigurationManager.AppSettings
เป็นNameValueCollection
- จากเอกสาร MSDN :
เมธอด Get ไม่แยกความแตกต่างระหว่างnull ที่ถูกส่งกลับเนื่องจากไม่พบคีย์ที่ระบุและ null ซึ่งถูกส่งคืนเนื่องจากค่าที่เกี่ยวข้องกับคีย์เป็น null
(เน้นของฉัน)
คำตอบอื่น ๆ อ้างอิงเอกสารสำหรับคุณสมบัติ Item อาจไม่ชัดเจนในทันทีว่าเหตุใดจึงเกี่ยวข้องกับการดูข้อมูลโค้ดต่อไปนี้
ConfigurationManager.AppSettings["blah"]
ไวยากรณ์วงเล็บเหลี่ยมใช้ใน C # เพื่อเข้าถึงตัวทำดัชนี คุณสมบัติเหล่านี้เป็นคุณสมบัติพิเศษที่อนุญาตให้จัดทำดัชนีคลาสในลักษณะเดียวกับอาร์เรย์ เมื่อดูคำจำกัดความของคุณสมบัติNameValueCollectionItemคุณจะสังเกตเห็นว่ามันไม่ได้ใช้ไวยากรณ์คุณสมบัติปกติ คีย์เวิร์ดนี้และพารามิเตอร์ตัวทำดัชนีถูกใช้เพื่อกำหนดคุณสมบัตินี้เป็นตัวทำดัชนี
public string this[
string name
] { get; set; }
ในเอกสารประกอบตัวสร้างดัชนีมีชื่อโดยปริยาย Item และพารามิเตอร์ล้อมรอบด้วยวงเล็บเหลี่ยม
ไม่ชัดเจนสำหรับฉันว่าเหตุใดจึงมีคำตอบที่อ้างถึงเมธอดGet - คนหนึ่งอาจเรียกอีกฝ่าย?
ในอัตราใดก็ได้เพื่อตอบคำถาม ...
ไม่ข้อยกเว้นจะไม่เกิดขึ้นหากคุณเข้าถึงคีย์ที่ไม่มีอยู่จริง - ค่าว่างจะถูกส่งกลับ
นี่คือส่วนที่เกี่ยวข้องจากไฟล์ เอกสารคุณสมบัติNameValueCollection.Iem
คุณสมบัตินี้จะคืนค่า null ในกรณีต่อไปนี้: 1) หากไม่พบคีย์ที่ระบุ และ 2) หากพบคีย์ที่ระบุและค่าที่เกี่ยวข้องเป็นโมฆะ คุณสมบัตินี้ไม่ได้แยกความแตกต่างระหว่างสองกรณี
ใช่http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
แก้ไข: สิ่งนี้ผิดอย่างชัดเจน เหลือไว้สำหรับความคิดเห็นที่เป็นประโยชน์ด้านล่าง
NameValueCollection
ไม่พบนั่นคือระบบไม่พบการตั้งค่าใด ๆ คอลเลกชันค่าชื่อไม่เกิดข้อยกเว้นเมื่อคุณพยายามดึงค่าเดียวที่ไม่มีอยู่ ..