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 # polymorphism

polymorphism หมายความว่ามีหลายรูปแบบในเชิงวัตถุกระบวนทัศน์การเขียนโปรแกรม polymorphism มักจะแสดงเป็น "อินเตอร์เฟซที่หนึ่งฟังก์ชั่นหลาย."

ความแตกต่างสามารถเป็นแบบคงที่หรือแบบไดนามิกมีหลายรูปแบบคงที่ในฟังก์ชั่นการตอบสนองที่เกิดขึ้นในเวลารวบรวมในหลายรูปแบบไดนามิก, ฟังก์ชั่นการตอบสนองที่เกิดขึ้นที่รันไทม์

มีหลายรูปแบบคงที่

ที่รวบรวมเวลาการทำงานของกลไกการเชื่อมต่อและวัตถุที่เรียกว่าการรวมก่อนยังเป็นที่รู้จักคงมีผลผูกพัน C # มีสองเทคนิคในการดำเนินการหลายรูปแบบคงที่ พวกเขาคือ

  • ฟังก์ชั่นการบรรทุกเกินพิกัด
  • ดำเนินงานมาก

ดำเนินงานมากจะหารือในส่วนถัดไปเราจะหารือเกี่ยวกับการโอเวอร์โหลดฟังก์ชั่นดังต่อไปนี้

ฟังก์ชั่นการบรรทุกเกินพิกัด

คุณสามารถอยู่ในช่วงเดียวกันชื่อฟังก์ชั่นเดียวกันมีคำจำกัดความหลาย ฟังก์ชั่นที่กำหนดไว้จะต้องแตกต่างจากคนอื่น ๆ อาจจะเป็นรายการพารามิเตอร์ชนิดพารามิเตอร์ยังสามารถเป็นจำนวนพารามิเตอร์ที่แตกต่างกัน คุณไม่สามารถจะมากเกินไปตามประเภทของการกลับมาของการประกาศฟังก์ชันเท่านั้น

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงหลายพิมพ์ฟังก์ชันเดียวกัน () สำหรับการพิมพ์ที่แตกต่างกันของข้อมูล:

การใช้ระบบ
PolymorphismApplication namespace
{
   ระดับ Printdata
   {
      พิมพ์เป็นโมฆะ (int i)
      {
         Console.WriteLine ( "พิมพ์ int: {0}" ผม);
      }

      พิมพ์เป็นโมฆะ (Double F)
      {
         Console.WriteLine ( "พิมพ์ลอย: {0}", F);
      }

      เป็นโมฆะพิมพ์ (String s)
      {
         Console.WriteLine ( "สตริงพิมพ์: {0}", S);
      }
      เป็นโมฆะคง main (String args [])
      {
         P = Printdata ใหม่ Printdata ();
         // เรียกใช้พิมพ์เพื่อพิมพ์ p.print จำนวนเต็ม (5)
         // เรียกใช้พิมพ์จะพิมพ์ p.print ลอย (500.263);
         // เรียกใช้พิมพ์ไปสตริงพิมพ์ p.print ( "สวัสดี c ++");
         Console.ReadKey ();
      }
   }
}

เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:

int พิมพ์: 5
ลอยการพิมพ์: 500.263
สตริงพิมพ์: สวัสดี c ++

มีหลายรูปแบบไดนามิค

C #ช่วยให้คุณสามารถใช้คำหลักที่เป็นนามธรรมที่จะสร้างระดับนามธรรมใช้อินเตอร์เฟซให้เป็นส่วนหนึ่งของการเรียนเมื่อคลาสที่ได้รับสืบทอดมาจากระดับนามธรรมเพื่อให้บรรลุสมบูรณ์ระดับนามธรรมมีวิธีนามธรรมนามธรรมวิธีการที่สามารถนำมาใช้เป็นชั้นเรียนมาคลาสที่ได้รับมีฟังก์ชั่นพิเศษเพิ่มเติม

โปรดทราบว่าต่อไปนี้เป็นกฎบางอย่างสำหรับการเรียนบทคัดย่อ:

  • คุณไม่สามารถสร้างตัวอย่างของการเรียนนามธรรม
  • คุณไม่สามารถประกาศวิธีนามธรรมนอกระดับนามธรรม
  • โดยการวางในด้านหน้าของคำนิยามชั้นปิดผนึกระดับที่สามารถประกาศเป็นชั้นเรียนที่ปิดสนิทเมื่อชั้นมีการประกาศปิดผนึกมันไม่สามารถจะได้รับมรดก ระดับนามธรรมไม่สามารถประกาศเป็นที่ปิดสนิท

โปรแกรมต่อไปนี้แสดงให้เห็นถึงระดับนามธรรม:

การใช้ระบบ
PolymorphismApplication namespace
{
   รูปร่างระดับนามธรรม
   {
      พื้นที่สาธารณะ int นามธรรม ();
   }
   ระดับสี่เหลี่ยมผืนผ้าทรง
   {
      ความยาว int เอกชน
      ความกว้าง int เอกชน
      สี่เหลี่ยมผืนผ้าสาธารณะ (int A = 0, int B = 0)
      {
         ความยาว = a;
         width = B;
      }
      พื้นที่ int แทนที่ประชาชน ()
      { 
         Console.WriteLine ( "พื้นที่ชั้นสี่เหลี่ยมผืนผ้า:");
         ผลตอบแทน (กว้างยาว *); 
      }
   }

   ระดับ RectangleTester
   {
      เป็นโมฆะคง main (String args [])
      {
         สี่เหลี่ยมผืนผ้า r = สี่เหลี่ยมผืนผ้าใหม่ (10, 7);
         Double A = r.area ();
         Console.WriteLine ( "ขนาด: {0}" เป็น);
         Console.ReadKey ();
      }
   }
}

เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:

สี่เหลี่ยมผืนผ้าขนาดของชั้นเรียน:
พื้นที่: 70

เมื่อมีฟังก์ชั่นที่กำหนดไว้ในชั้นเรียนจะต้องมีการดำเนินการในชั้นเรียนมา,คุณสามารถใช้วิธีเสมือนวิธีการเสมือนมีการประกาศใช้คำสำคัญเสมือน วิธีเสมือนจริงอาจจะดำเนินการแตกต่างกันในชั้นเรียนได้รับการถ่ายทอดที่แตกต่างกัน โทรวิธีเสมือนเกิดขึ้นที่รันไทม์

ความแตกต่างแบบไดนามิกจะทำได้โดยคลาสนามธรรมและวิธีการเสมือน

โปรแกรมต่อไปนี้แสดงให้เห็นถึงจุดนี้:

การใช้ระบบ
PolymorphismApplication namespace
{
   รูปร่างระดับ 
   {
      การป้องกันความกว้าง int สูง;
      รูปร่างสาธารณะ (int A = 0, int B = 0)
      {
         ความกว้าง = a;
         height = B;
      }
      พื้นที่สาธารณะ int เสมือน ()
      {
         Console.WriteLine ( "พื้นที่ปกครอง:");
         กลับ 0;
      }
   }
   ระดับสี่เหลี่ยมผืนผ้าทรง
   {
      สี่เหลี่ยมผืนผ้าสาธารณะ (int A = 0, int B = 0): ฐาน (A, B)
      {

      }
      พื้นที่ int แทนที่ประชาชน ()
      {
         Console.WriteLine ( "พื้นที่ชั้นสี่เหลี่ยมผืนผ้า:");
         กลับ (กว้าง * สูง); 
      }
   }
   สามเหลี่ยมระดับทรง
   {
      สาธารณะสามเหลี่ยม (int A = 0, int B = 0): ฐาน (A, B)
      {
      
      }
      พื้นที่ int แทนที่ประชาชน ()
      {
         Console.WriteLine ( "พื้นที่ชั้นสามเหลี่ยม:");
         กลับ (กว้าง * สูง / 2); 
      }
   }
   ระดับผู้โทรเข้า
   {
      โมฆะสาธารณะ CallArea (รูปร่าง SH)
      {
         int a;
         A = sh.area ();
         Console.WriteLine ( "ขนาด: {0}" เป็น);
      }
   }  
   ทดสอบระดับ
   {
      
      เป็นโมฆะคง main (String args [])
      {
         Caller c = Caller ใหม่ ();
         สี่เหลี่ยมผืนผ้า r = สี่เหลี่ยมผืนผ้าใหม่ (10, 7);
         สามเหลี่ยม t = ใหม่สามเหลี่ยม (10, 5)
         c.CallArea (R);
         c.CallArea (T);
         Console.ReadKey ();
      }
   }
}

เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:

สี่เหลี่ยมผืนผ้าขนาดของชั้นเรียน:
พื้นที่: 70
พื้นที่ชั้นสามเหลี่ยม:
พื้นที่: 25