บทช่วยสอน C # ประกอบการบรรทุกเกินพิกัด ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ ไปประกอบการเพื่อให้บรรลุ,ผู้ประกอบการสามารถโหลดซ้ำและไม่มากเกินไป,ตัวอย่าง,
คุณสามารถ redefine หรือแทนที่ C # ผู้ประกอบการในตัว ดังนั้นโปรแกรมเมอร์สามารถใช้ที่ผู้ใช้กำหนดประเภทผู้ประกอบการผู้ประกอบการมากเกินไปจะมีชื่อของฟังก์ชั่นพิเศษตามด้วยผู้ประกอบการนิยามคำหลักสัญลักษณ์ประกอบการและหน้าที่อื่น ๆ ผู้ประกอบการมากเกินไปมีประเภทของผลตอบแทนและรายชื่อพารามิเตอร์
ยกตัวอย่างเช่นพิจารณาฟังก์ชันต่อไปนี้:
ประชาชนผู้ประกอบการคงกล่อง + (กล่อง B, C Box) { กล่อง = กล่องใหม่ (); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; กล่องกลับ; }
ฟังก์ชั่นข้างต้นเป็นผู้ใช้กำหนดกล่องระดับผู้ประกอบการดำเนินการเพิ่ม (+) มันเป็นทรัพย์สินของวัตถุทั้งสองกล่องที่มีการเพิ่มและวัตถุกล่องเพิ่มผลตอบแทน
โปรแกรมต่อไปนี้แสดงให้เห็นถึงการดำเนินงานที่สมบูรณ์แบบ:
การใช้ระบบ OperatorOvlApplication namespace { กล่องชั้น { ความยาวสองส่วนตัว; // ความยาวความกว้างส่วนตัวคู่; // ความกว้างความสูงคู่ส่วนตัว; // สูงสาธารณะคู่ getVolume () { ผลตอบแทนยาว * กว้าง * สูง; } โมฆะสาธารณะ SetLength (เลนคู่) { ความยาว = len; } โมฆะสาธารณะ setBreadth (BRE คู่) { ความกว้าง = BRE; } โมฆะสาธารณะ setHeight (Hei คู่) { height = Hei; } // ล้น + ผู้ประกอบการผลรวมของทั้งสองกล่องวัตถุสาธารณะกล่องประกอบการคงที่ + (กล่อง B, C Box) { กล่อง = กล่องใหม่ (); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; กล่องกลับ; } } ทดสอบระดับ { เป็นโมฆะคง main (String args []) { กล่อง box1 = ใหม่กล่อง (); // ประกาศ box1 ชนิดกล่อง กล่อง box2 = ใหม่กล่อง (); // ประกาศ box2 ชนิดกล่อง กล่อง Box3 = ใหม่กล่อง (); // ประกาศ Box3 ชนิดกล่อง ปริมาณคู่ = 0.0; // // box1 ปริมาณรายละเอียด Box1.setLength (6.0); Box1.setBreadth (7.0); Box1.setHeight (5.0); // box2 รายละเอียด Box2.setLength (12.0); Box2.setBreadth (13.0); Box2.setHeight (10.0); // ปริมาณ box1 ของปริมาณ = Box1.getVolume (); Console.WriteLine ( "ปริมาณ box1: {0}" ปริมาณ); // ปริมาณ box2 ของปริมาณ = Box2.getVolume (); Console.WriteLine ( "ปริมาณ box2: {0}" ปริมาณ); // วัตถุทั้งสองมีการเพิ่ม Box3 = box1 + box2; // ปริมาณ Box3 ของปริมาณ = Box3.getVolume (); Console.WriteLine ( "ปริมาณ Box3: {0}" ปริมาณ); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
ปริมาณ box1: 210 ปริมาณ box2: 1560 ปริมาณ Box3: 5400
ตารางต่อไปนี้จะอธิบายถึงความสามารถในการบรรทุกเกินพิกัด C # ผู้ประกอบการ:
运算符 | 描述 |
---|---|
+, -, !, ~, ++, -- | 这些一元运算符只有一个操作数,且可以被重载。 |
+, -, *, /, % | 这些二元运算符带有两个操作数,且可以被重载。 |
==, !=, <, >, <=, >= | 这些比较运算符可以被重载。 |
&&, || | 这些条件逻辑运算符不能被直接重载。 |
+=, -=, *=, /=, %= | 这些赋值运算符不能被重载。 |
=, ., ?:, ->, new, is, sizeof, typeof | 这些运算符不能被重载。 |
สำหรับการอภิปรายดังกล่าวข้างต้นให้ขยายตัวอย่างข้างต้นผู้ประกอบการมากเกินไปเพิ่มเติมได้ที่:
การใช้ระบบ OperatorOvlApplication namespace { กล่องชั้น { ความยาวสองส่วนตัว; // ความยาวความกว้างส่วนตัวคู่; // ความกว้างความสูงคู่ส่วนตัว; // สูงสาธารณะคู่ getVolume () { ผลตอบแทนยาว * กว้าง * สูง; } โมฆะสาธารณะ SetLength (เลนคู่) { ความยาว = len; } โมฆะสาธารณะ setBreadth (BRE คู่) { ความกว้าง = BRE; } โมฆะสาธารณะ setHeight (Hei คู่) { height = Hei; } // ล้น + ผู้ประกอบการผลรวมของทั้งสองกล่องวัตถุสาธารณะกล่องประกอบการคงที่ + (กล่อง B, C Box) { กล่อง = กล่องใหม่ (); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; กล่องกลับ; } สาธารณะคงประกอบบูล == (LHS กล่องกล่อง RHS) { สถานะบูล = false; ถ้า (lhs.length == rhs.length && lhs.height == rhs.height && Lhs.breadth == rhs.breadth) { สถานะ = true; } สถานะกลับ; } ผู้ประกอบการบูลคงที่สาธารณะ! = (LHS กล่องกล่อง RHS) { สถานะบูล = false; ถ้า (lhs.length! = rhs.length || lhs.height! = rhs.height || Lhs.breadth! = Rhs.breadth) { สถานะ = true; } สถานะกลับ; } ประชาชนผู้ประกอบการคงบูล <(LHS กล่องกล่อง RHS) { สถานะบูล = false; ถ้า (lhs.length <rhs.length && lhs.height <Rhs.height && lhs.breadth <rhs.breadth) { สถานะ = true; } สถานะกลับ; } ประชาชนผู้ประกอบการคงบูล> (LHS กล่องกล่อง RHS) { สถานะบูล = false; ถ้า (lhs.length> rhs.length && lhs.height > Rhs.height && lhs.breadth> rhs.breadth) { สถานะ = true; } สถานะกลับ; } ประชาชนผู้ประกอบการคงบูล <= (LHS กล่องกล่อง RHS) { สถานะบูล = false; ถ้า (lhs.length <= rhs.length && lhs.height <= Rhs.height && lhs.breadth <= rhs.breadth) { สถานะ = true; } สถานะกลับ; } ประชาชนผู้ประกอบการคงบูล> = (LHS กล่องกล่อง RHS) { สถานะบูล = false; ถ้า (lhs.length> = rhs.length && lhs.height > = Rhs.height && lhs.breadth> = rhs.breadth) { สถานะ = true; } สถานะกลับ; } แทนที่ประชาชนสตริง ToString () { กลับ String.Format ( "({0}, {1}, {2})" ความยาวความกว้างความสูง); } } ทดสอบระดับ { เป็นโมฆะคง main (String args []) { กล่อง box1 = ใหม่กล่อง (); // ประกาศ box1 ชนิดกล่อง กล่อง box2 = ใหม่กล่อง (); // ประกาศ box2 ชนิดกล่อง กล่อง Box3 = ใหม่กล่อง (); // ประกาศ Box3 ชนิดกล่อง กล่อง Box4 = ใหม่กล่อง (); ปริมาณคู่ = 0.0; // // box1 ปริมาณรายละเอียด Box1.setLength (6.0); Box1.setBreadth (7.0); Box1.setHeight (5.0); // box2 รายละเอียด Box2.setLength (12.0); Box2.setBreadth (13.0); Box2.setHeight (10.0); // ใช้มากเกินไป ToString () แสดงสองกล่อง Console.WriteLine ( "box1: {0}" Box1.ToString ()); Console.WriteLine ( "box2: {0}" Box2.ToString ()); // ปริมาณ box1 ของปริมาณ = Box1.getVolume (); Console.WriteLine ( "ปริมาณ box1: {0}" ปริมาณ); // ปริมาณ box2 ของปริมาณ = Box2.getVolume (); Console.WriteLine ( "ปริมาณ box2: {0}" ปริมาณ); // วัตถุทั้งสองมีการเพิ่ม Box3 = box1 + box2; Console.WriteLine ( "Box3: {0}" Box3.ToString ()); // ปริมาณ Box3 ของปริมาณ = Box3.getVolume (); Console.WriteLine ( "ปริมาณ Box3: {0}" ปริมาณ); // เปรียบเทียบกล่อง ถ้า (box1> box2) Console.WriteLine ( "box1 มากกว่า box2"); อื่น Console.WriteLine ( "box1 ไม่เกิน box2"); ถ้า (box1 <box2) Console.WriteLine ( "box1 น้อยกว่า box2"); อื่น Console.WriteLine ( "box1 ไม่น้อยกว่า box2"); ถ้า (box1> = box2) Console.WriteLine ( "box1 มากกว่าหรือเท่ากับ box2"); อื่น Console.WriteLine ( "box1 ไม่ได้มากกว่าหรือเท่ากับ box2"); ถ้า (box1 <= box2) Console.WriteLine ( "box1 น้อย box2"); อื่น Console.WriteLine ( "box1 ไม่น้อย box2"); ถ้า (box1! = box2) Console.WriteLine ( "box1 ไม่เท่ากับ box2"); อื่น Console.WriteLine ( "box1 เท่ากับ box2"); Box4 = Box3; ถ้า (Box3 == Box4) Console.WriteLine ( "Box3 เท่ากับ Box4"); อื่น Console.WriteLine ( "Box3 ไม่เท่ากับ Box4"); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
box1: (6, 7, 5) box2 ที่: (12, 13, 10) ปริมาณ box1: 210 ปริมาณ box2: 1560 Box3: (18, 20, 15) ปริมาณ Box3: 5400 box1 box2 ไม่เกิน box1 box2 น้อยกว่า box1 box2 ไม่ได้มากกว่าหรือเท่ากับ box1 box2 น้อย box1 box2 ไม่เท่ากัน Box3 เท่ากับ Box4