Latest web development tutorials
×

C# หลักสูตร

C# หลักสูตร C# แนะนำโดยย่อ C# สิ่งแวดล้อม C# โครงสร้างหลักสูตร C# ไวยากรณ์พื้นฐาน C# ชนิดข้อมูล C# ประเภทการแปลง C# ตัวแปร C# คงที่ C# ผู้ประกอบการ C# ผู้พิพากษา C# การไหลเวียน C# บรรจุภัณฑ์ C# ทาง C# ประเภท nullable C# แถว(Array) C# เชือก(String) C# โครงสร้าง(Struct) C# แจกแจง(Enum) C# หมวดหมู่(Class) C# สืบทอด C# polymorphism C# ดำเนินงานมาก C# อินเตอร์เฟซ(Interface) C# namespaces(Namespace) C# สั่ง preprocessor C# นิพจน์ปกติ C# การจัดการข้อยกเว้น C# input และ output ไฟล์

C# การสอนที่ทันสมัย

C# คุณสมบัติ(Attribute) C# การสะท้อนกลับ(Reflection) C# คุณสมบัติ(Property) C# ทำดัชนี(Indexer) C# มอบความไว้วางใจ(Delegate) C# เหตุการณ์(Event) C# ตั้งค่า(Collection) C# ยาชื่อสามัญ(Generic) C# วิธีการที่ไม่ระบุชื่อ C# รหัสที่ไม่ปลอดภัย C# multithreading

C # ประกอบการบรรทุกเกินพิกัด

คุณสามารถ 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