สารบัญ:
คำจำกัดความ - ตัวดัดแปลงการเข้าถึงหมายความว่าอย่างไร
ตัวดัดแปลงการเข้าถึงคือคีย์เวิร์ดที่ใช้เพื่อระบุความสามารถในการเข้าถึงคลาส (หรือประเภท) และสมาชิก โมดิฟายเออร์เหล่านี้สามารถใช้จากรหัสภายในหรือภายนอกแอปพลิเคชันปัจจุบัน
ตัวดัดแปลงการเข้าถึงใน. NET ใช้เพื่อควบคุมการเข้าถึงของสมาชิกแต่ละประเภทจากส่วนต่าง ๆ ของรหัสที่เป็นไปได้ สามารถจัดการได้จากภายในชุดประกอบปัจจุบันหรือภายนอก แอสเซมบลีแทนหน่วยทางลอจิคัลของฟังก์ชันการทำงานและประกอบด้วยชนิดและทรัพยากรที่อยู่ในแฟ้มอย่างน้อยหนึ่งไฟล์
วัตถุประสงค์ของการใช้ตัวดัดแปลงการเข้าถึงคือการใช้การห่อหุ้มซึ่งแยกส่วนต่อประสานของประเภทจากการใช้งาน ด้วยสิ่งนี้คุณจะได้รับประโยชน์ดังต่อไปนี้:
- การป้องกันการเข้าถึงข้อมูลภายในที่กำหนดโดยผู้ใช้ในสถานะที่ไม่ถูกต้อง
- จัดเตรียมการเปลี่ยนแปลงการใช้งานภายในของประเภทโดยไม่กระทบกับส่วนประกอบที่ใช้
- ลดความซับซ้อนของระบบโดยลดการพึ่งพาซึ่งกันและกันระหว่างส่วนประกอบซอฟต์แวร์
Techopedia อธิบายตัวดัดแปลงการเข้าถึง
กรอบงาน. NET ให้ตัวเลือกในการมีตัวดัดแปลงการเข้าถึงห้าประเภท:
- รหัสส่วนตัวภายในประเภทนั้นสามารถเข้าถึงสมาชิกประเภทนั้นเท่านั้นและการเข้าถึงจึง จำกัด เฉพาะประเภทปัจจุบัน
- สาธารณะ - รหัสจากที่ใดก็ได้ภายในแอสเซมบลีปัจจุบันหรือแอสเซมบลีอื่นที่อ้างอิงสามารถเข้าถึงสมาชิกของชนิดและด้วยเหตุนี้ช่วยให้การเข้าถึงจากที่ใดก็ได้
- ได้รับการป้องกัน - รหัสภายในประเภทหรือคลาสที่ได้รับสามารถเข้าถึงสมาชิกของประเภทและการเข้าถึงจึง จำกัด เฉพาะประเภทปัจจุบันและคลาสที่ได้รับ
- ภายใน - รหัสในแอสเซมบลีปัจจุบัน แต่ไม่ใช่จากแอสเซมบลีอื่นสามารถเข้าถึงสมาชิกของชนิดดังนั้นการเข้าถึงถูก จำกัด ไปยังแอสเซมบลีปัจจุบัน
- Protected Internal - code ในแอสเซมบลีปัจจุบันสามารถเข้าถึงสมาชิกของประเภทและจากแอสเซมบลีที่อ้างอิงได้ ดังนั้นการเข้าถึงจากคลาสที่ได้รับในแอสเซมบลีปัจจุบันและต้องเกิดขึ้นผ่านอินสแตนซ์ของคลาสคลาสที่ได้รับในแอสเซมบลีอ้างอิงนั้น
มีกฎหลายข้อที่ใช้กับตัวดัดแปลงการเข้าถึง:
- เมื่อไม่ได้ระบุตัวแก้ไขการเข้าถึงเพื่อพิมพ์สมาชิกระดับการเข้าถึงเริ่มต้นจะเป็นส่วนตัวและภายใน
- ไม่มีตัวดัดแปลงการเข้าถึงที่อนุญาตสำหรับเนมสเปซเนื่องจากเป็นแบบสาธารณะ
- คลาสที่ซ้อนกันและสมาชิกโครงสร้างที่ประกาศภายในชนิดคือคลาสที่มีไพรเวตโดยค่าดีฟอลต์
- ไม่สามารถประกาศสมาชิกโครงสร้างได้เนื่องจากไม่สนับสนุนการสืบทอด
- Destructors ไม่สามารถปรับเปลี่ยนการเข้าถึง
- ประเภทที่ได้รับไม่สามารถเข้าถึงได้ง่ายกว่าประเภทฐาน
- สมาชิกประเภทที่มีควรมีการเข้าถึงน้อยกว่าประเภทที่มีการบรรจุ สิ่งนี้สามารถแสดงได้ด้วยตัวอย่าง: วิธีการสาธารณะในประเภทที่มีไม่สามารถมี“ A” เป็นพารามิเตอร์ได้ถ้าประเภท A ไม่ได้อยู่ในการมองเห็นสาธารณะ
- อินเทอร์เฟซถูกประกาศเป็นสาธารณะและภายในและไม่สามารถมีตัวดัดแปลงการเข้าถึงอื่น ๆ ได้เนื่องจากอินเตอร์เฟสส่วนใหญ่จะใช้สำหรับการเข้าถึงโดยคลาสที่ได้รับมาจากมัน
- Access modifiers ไม่เพียง แต่จะใช้กับสมาชิกคลาสเท่านั้น แต่ยังรวมถึงการสร้างรหัสอื่น ๆ ด้วยความตั้งใจเดียวกัน
