สารบัญ:
คำจำกัดความ - ผู้ประกอบการทางอ้อมหมายถึงอะไร
ตัวดำเนินการทางอ้อมในบริบทของ C # เป็นตัวดำเนินการที่ใช้เพื่อรับค่าของตัวแปรที่ตัวชี้ชี้ ในขณะที่ตัวชี้ชี้ไปที่ตัวแปรให้การเข้าถึงโดยอ้อมกับค่าของตัวแปรที่เก็บไว้ในที่อยู่หน่วยความจำของมันผู้ประกอบการทางอ้อม dereferences ตัวชี้และส่งกลับค่าของตัวแปรที่ตำแหน่งหน่วยความจำนั้น ตัวดำเนินการทางอ้อมคือตัวดำเนินการเอกที่แสดงด้วยสัญลักษณ์ (*)
ตัวดำเนินการทางอ้อมสามารถใช้ในตัวชี้ไปยังตัวชี้ไปยังจำนวนเต็มอาร์เรย์แบบมิติเดียวของตัวชี้ไปยังจำนวนเต็มตัวชี้ไปยังอักขระและตัวชี้ไปยังชนิดที่ไม่รู้จัก
โอเปอเรเตอร์ทางอ้อมยังเป็นที่รู้จักกันในนาม
Techopedia อธิบายผู้ประกอบการทางอ้อม
สัญลักษณ์ (*) ใช้ในการประกาศประเภทของตัวชี้และในการดำเนินการตัวชี้ทางอ้อมในขณะที่ตัวดำเนินการ 'address-of' () จะส่งคืนที่อยู่ของตัวแปร ดังนั้นผู้ดำเนินการทางอ้อมและที่อยู่ของผู้ประกอบการเป็นผู้รุกรานของกันและกัน
C # อนุญาตให้ใช้พอยน์เตอร์ในภูมิภาคที่ไม่ปลอดภัยเท่านั้นซึ่งหมายความว่าความปลอดภัยของรหัสในภูมิภาคนั้นไม่ได้รับการตรวจสอบโดย runtime ภาษาทั่วไป (CLR) ในภูมิภาคที่ไม่ปลอดภัยผู้ดำเนินการทางอ้อมจะได้รับอนุญาตให้อ่านและเขียนไปยังตัวชี้ คำสั่ง C # ต่อไปนี้แสดงให้เห็นถึงการใช้งานของผู้ประกอบการทางอ้อม:
- int a = 1, b; // บรรทัดที่ 1
- int * pInt = & a; // บรรทัด 2
- b = * pInt; // บรรทัดที่ 3
ควรใช้ตัวดำเนินการทางอ้อมเพื่อยกเลิกการลงทะเบียนตัวชี้ที่ถูกต้องโดยมีที่อยู่ที่ตรงกับประเภทที่ชี้ไปเพื่อหลีกเลี่ยงพฤติกรรมที่ไม่ได้กำหนดไว้ที่รันไทม์ ไม่ควรใช้กับตัวชี้โมฆะหรือนิพจน์ที่ไม่ใช่ประเภทตัวชี้เพื่อหลีกเลี่ยงข้อผิดพลาดของคอมไพเลอร์ อย่างไรก็ตามหลังจากการชี้เป็นโมฆะชี้ไปที่ชนิดของตัวชี้ด้านขวาสามารถใช้ตัวดำเนินการทางอ้อม
เมื่อประกาศพอยน์เตอร์หลายรายการในคำสั่งเดียวผู้ดำเนินการทางอ้อมควรเขียนเพียงครั้งเดียวด้วยประเภทพื้นฐานและไม่ซ้ำสำหรับชื่อตัวชี้แต่ละชื่อ โอเปอเรเตอร์ทางอ้อมมีการแจกจ่ายใน C # ซึ่งแตกต่างจาก C และ C ++ เมื่อผู้ประกอบการทางอ้อมถูกนำไปใช้กับตัวชี้โมฆะมันส่งผลให้เกิดพฤติกรรมที่กำหนดดำเนินการ เนื่องจากตัวดำเนินการนี้ใช้ในบริบทที่ไม่ปลอดภัยจึงควรใช้คำหลักที่ไม่ปลอดภัยก่อนพร้อมกับตัวเลือก / unsafe ในระหว่างการรวบรวม คำจำกัดความนี้ถูกเขียนในบริบทของ C #
