ข้อแตกต่างระหว่างinternal
และprivate
ตัวดัดแปลงการเข้าถึงใน C # คืออะไร
ข้อแตกต่างระหว่างinternal
และprivate
ตัวดัดแปลงการเข้าถึงใน C # คืออะไร
คำตอบ:
ภายในสำหรับขอบเขตแอสเซมบลี (เช่นเข้าถึงได้จากรหัสใน. exe หรือ. dll เดียวกันเท่านั้น)
ส่วนตัวสำหรับขอบเขตของคลาส (เช่นสามารถเข้าถึงได้จากรหัสในคลาสเดียวกันเท่านั้น)
ค้นหาคำอธิบายด้านล่าง คุณสามารถตรวจสอบลิงค์นี้เพื่อดูรายละเอียดเพิ่มเติมได้ที่ http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
ส่วนตัว: - สมาชิกส่วนตัวสามารถเข้าถึงได้เฉพาะภายในประเภทของตัวเอง (ชั้นเรียนของตัวเอง)
ภายใน: - สมาชิกภายในสามารถเข้าถึงได้เฉพาะภายในแอสเซมบลีโดยการสืบทอด (ชนิดที่ได้รับ) หรือตามอินสแตนซ์ของคลาส
เอกสารอ้างอิง:
Protected Internal
Protected
protected internal
protected OR internal
With Type
หมายถึง?
AND
เมทริกซ์ที่ | จริงเท็จ | เท็จ | protected internal
เท็จ ไม่ง่าย แต่มันเป็นความจริง | | จริง | OR'd
จริงเท็จเช่นถ้า
private protected
จะไม่ง่ายนัก สำหรับรายละเอียด: docs.microsoft.com/en-us/dotnet/csharp/language-reference/ ......
internal
สมาชิกสามารถมองเห็นรหัสทั้งหมดในแอสเซมบลีที่พวกเขาจะประกาศมา
(และแอสเซมบลีอื่นอ้างอิงโดยใช้[InternalsVisibleTo]
คุณลักษณะ )
private
สมาชิกสามารถมองเห็นได้เฉพาะในชั้นเรียนที่ประกาศ (รวมถึงคลาสที่ซ้อนกัน)
ไม่สามารถประกาศคลาส outer (ที่ไม่ซ้อนกัน) private
เนื่องจากไม่มีขอบเขตที่จะทำให้เป็นส่วนตัว
เพื่อตอบคำถามที่คุณลืมขอให้protected
สมาชิกเป็นเหมือนprivate
สมาชิก แต่ยังปรากฏให้เห็นในทุกชั้นเรียนที่รับประเภทการประกาศ (แต่ในนิพจน์อย่างน้อยประเภทของคลาสปัจจุบัน)
เอกชน - การห่อหุ้มในคลาส / ขอบเขต / โครงสร้าง ect '
ภายใน - การห่อหุ้มในการประกอบ
สมาชิกส่วนตัวสามารถเข้าถึงได้เฉพาะภายในร่างกายของชั้นเรียนหรือโครงสร้างที่พวกเขาจะประกาศ
ภายในประเภทหรือสมาชิกจะสามารถเข้าถึงได้เฉพาะภายในไฟล์ในการชุมนุมเดียวกัน
ภายในจะอนุญาตให้คุณอ้างอิงพูดคลาส Data Access แบบคงที่ (เพื่อความปลอดภัยของเธรด) ระหว่างคลาสตรรกะทางธุรกิจหลายคลาสในขณะที่ไม่ได้สมัครเป็นสมาชิกเพื่อรับคลาส / การเดินทางนั้นกันในพูลการเชื่อมต่อและท้ายที่สุด เพื่อส่งเสริมการเข้าถึงในระดับสาธารณะ สิ่งนี้มีการสนับสนุนในการออกแบบและแนวทางปฏิบัติที่ดีที่สุดนับไม่ถ้วน
Entity Framework ใช้ประโยชน์จากการเข้าถึงประเภทนี้ได้ดี
สมาชิกภายในสามารถเข้าถึงได้ภายในชุดประกอบ (เข้าถึงได้ในโครงการเดียวกันเท่านั้น)
สมาชิกส่วนตัวสามารถเข้าถึงได้ภายในชั้นเดียวกัน
มี 2 โครงการในโซลูชัน (Project1, Project2) และ Project1 มีการอ้างอิงถึง Project2