ฉันพยายามค้นหาข้อมูลอ้างอิงสำหรับการมองเห็นเริ่มต้นของแง่มุมต่าง ๆ ของ C # ประเภทคลาสฟิลด์วิธีการ enums ฯลฯ
ใครสามารถให้รายชื่อของสิ่งเหล่านี้พร้อมกับการมองเห็นเริ่มต้นของพวกเขา (เช่นไม่มีการปรับเปลี่ยนคำนำหน้า)?
ฉันพยายามค้นหาข้อมูลอ้างอิงสำหรับการมองเห็นเริ่มต้นของแง่มุมต่าง ๆ ของ C # ประเภทคลาสฟิลด์วิธีการ enums ฯลฯ
ใครสามารถให้รายชื่อของสิ่งเหล่านี้พร้อมกับการมองเห็นเริ่มต้นของพวกเขา (เช่นไม่มีการปรับเปลี่ยนคำนำหน้า)?
คำตอบ:
ข้อมูลทั้งหมดที่คุณต้องการสามารถพบได้ที่นี่และที่นี่ (ขอบคุณReed Copsey ):
จากลิงค์แรก:
คลาสและโครงสร้างที่ประกาศโดยตรงภายในเนมสเปซ (กล่าวอีกนัยหนึ่งซึ่งไม่ซ้อนภายในคลาสหรือโครงสร้างอื่น) สามารถเป็นแบบสาธารณะหรือภายใน ภายในเป็นค่าเริ่มต้นหากไม่มีการปรับปรุงการเข้าถึงที่ระบุไว้
...
ระดับการเข้าถึงสำหรับสมาชิกชั้นเรียนและสมาชิก structรวมทั้งเรียนซ้อนกันและ structs เป็นส่วนตัวโดยค่าเริ่มต้น
...
อินเทอร์เฟซเริ่มต้นการเข้าถึงภายใน
...
ผู้รับมอบสิทธิ์ประพฤติเช่นคลาสและ structs โดยค่าเริ่มต้นที่พวกเขามีการเข้าถึงภายในเมื่อประกาศโดยตรงภายใน namespace และเข้าถึงความเป็นส่วนตัวเมื่อซ้อนกัน
จากลิงค์ที่สอง:
ประเภทระดับบนสุดซึ่งไม่ได้ซ้อนอยู่ในประเภทอื่นสามารถมีได้เฉพาะการเข้าถึงภายในหรือสาธารณะ เข้าถึงเริ่มต้นสำหรับประเภทนี้คือภายใน
และสำหรับประเภทซ้อนกัน:
สมาชิกของการเข้าถึงสมาชิกเริ่มต้น ---------- ---------------------------- ระบุสาธารณะ คลาสส่วนตัว อินเตอร์เฟสสาธารณะ struct แบบส่วนตัว
Public
คือ Enum
สมาชิกก็เช่นPublic
กัน อาจสับสนน้อยกว่าเพียงแค่ใช้ขอบเขตที่ชัดเจนในกรณีของคุณเนื่องจากโอกาสสูงจะถูกแปลหรืออ่านโดยนักพัฒนา c # ในบางจุด การสร้างรหัสใน vb.net ไม่ได้ทำเพื่อคุณ
จาก MSDN:
ประเภทระดับบนสุดซึ่งไม่ได้ซ้อนอยู่ในประเภทอื่นสามารถมีinternal
หรือpublic
เข้าถึงได้เท่านั้น internal
การเข้าถึงเริ่มต้นสำหรับประเภทนี้คือ
ที่มา: ระดับการเข้าถึง (C # อ้างอิง) (6 ธันวาคมTH 2017)
internal
โดยค่าเริ่มต้นปรับปรุงการเข้าถึงสำหรับการเรียนคือ นั่นหมายความว่าคลาสสามารถเข้าถึงได้ภายในแอสเซมบลีเดียวกัน แต่ถ้าเราต้องการให้คลาสเข้าถึงได้จากชุดประกอบอื่นก็จะต้องมีการเปิดเผยต่อสาธารณะ
[assembly:InternalsVisibleTo("Friend1b")]
private
โดยค่าเริ่มต้นคือ internal
เว้นแต่พวกเขากำลังซ้อนกันเป็นชั้นเรียน
enum members are private by default, so to use them outside the enum we should declare them as public
แต่หนังสือที่ฉันเรียนรู้จากการได้อย่างชัดเจนกล่าวว่า คุณช่วยอธิบายได้ไหมว่าทำไมหนังสือเล่มนี้ถึงขัดแย้งกับสิ่งที่คุณพูด? ขอบคุณ