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 # มรดก

เป็นมรดกเขียนโปรแกรมเชิงวัตถุเป็นหนึ่งในแนวคิดที่สำคัญที่สุด มรดกช่วยให้เราสามารถกำหนดระดับที่ขึ้นอยู่กับชั้นอื่นจะกำหนดระดับซึ่งจะทำให้การสร้างและการใช้งานการบำรุงรักษาง่ายมาก แต่ยังเอื้อต่อนำมาใช้ใหม่รหัสและลดเวลาในการพัฒนา

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

สำนึกของความคิดของมรดกที่อยู่ (IS-A) ความสัมพันธ์ยกตัวอย่างเช่นการเลี้ยงลูกด้วยนมเป็น (IS-A) สัตว์,สุนัขที่อยู่ (IS-A)เลี้ยงลูกด้วยนมและดังนั้นจึงเป็นสุนัข (IS-A) สัตว์

ฐานและชั้นเรียนมา

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

สร้างคลาสที่ได้รับใน C # ไวยากรณ์เป็นดังนี้:

<Acess-ระบุ> ระดับ <base_class>
{
 ...
}
ระดับ <derived_class>: <base_class>
{
 ...
}

สมมติว่ามีรูปร่างชั้นฐานซึ่งเป็นสี่เหลี่ยมผืนผ้าคลาสที่ได้รับ:

การใช้ระบบ
InheritanceApplication namespace
{
   รูปร่างระดับ 
   {
      โมฆะสาธารณะ setWidth (int W)
      {
         width = W;
      }
      โมฆะสาธารณะ setHeight (int เอช)
      {
         height = เอช;
      }
      การป้องกันความกว้าง int;
      การป้องกันความสูง int;
   }

   // ระดับชั้นเรียนมาสี่เหลี่ยมผืนผ้าทรง
   {
      int สาธารณะ getArea ()
      { 
         กลับ (กว้าง * สูง); 
      }
   }
   
   ระดับ RectangleTester
   {
      เป็นโมฆะคง main (String args [])
      {
         ดูแลรักษา Rectangle = สี่เหลี่ยมผืนผ้าใหม่ ();

         Rect.setWidth (5)
         (7) Rect.setHeight;

         // พิมพ์พื้นที่ของวัตถุ Console.WriteLine ( "พื้นที่ทั้งหมด: {0}" Rect.getArea ());
         Console.ReadKey ();
      }
   }
}

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

พื้นที่ทั้งหมด: 35

เริ่มต้นชั้นฐาน

คลาสที่ได้รับสืบทอดตัวแปรสมาชิกและวิธีการสมาชิกของชั้นฐาน ดังนั้นวัตถุแม่ควรได้รับการสร้างขึ้นก่อนวัตถุชั้นย่อยที่ถูกสร้างขึ้น คุณสามารถเริ่มต้นระดับผู้ปกครองที่อยู่ในรายชื่อสมาชิกเริ่มต้น

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

การใช้ระบบ
RectangleApplication namespace
{
   ระดับสี่เหลี่ยมผืนผ้า
   {
      // ตัวแปรสมาชิกที่มีการป้องกันความยาวคู่
      การป้องกันความกว้างคู่
      สี่เหลี่ยมผืนผ้าสาธารณะ (L คู่คู่ W)
      {
         ความยาว = l;
         width = W;
      }
      GetArea คู่สาธารณะ ()
      {
         กลับความยาวความกว้าง *;
      }
      โมฆะสาธารณะจอแสดงผล ()
      {
         Console.WriteLine ( "ความยาว: {0}", ความยาว);
         Console.WriteLine ( "width: {0}" กว้าง);
         Console.WriteLine ( "ขนาด: {0}" GetArea ());
      }
   } // สี่เหลี่ยมผืนผ้าระดับ End  
   โต๊ะระดับ: สี่เหลี่ยมผืนผ้า
   {
      ค่าใช้จ่ายส่วนตัวคู่;
      โต๊ะสาธารณะ (L คู่คู่ W): ฐาน (L, W)
      {}
      GetCost คู่สาธารณะ ()
      {
         ค่าใช้จ่ายคู่
         ค่าใช้จ่าย = GetArea () * 70;
         กลับค่าใช้จ่าย;
      }
      โมฆะสาธารณะจอแสดงผล ()
      {
         base.Display ();
         Console.WriteLine ( "ค่าใช้จ่าย: {0}" GetCost ());
      }
   }
   ระดับ ExecuteRectangle
   {
      เป็นโมฆะคง main (String args [])
      {
         โต๊ะ t = โต๊ะใหม่ (4.5, 7.5);
         t.Display ();
         Console.ReadLine ();
      }
   }
}

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

ความยาว: 4.5
ความกว้าง: 7.5
พื้นที่: 33.75
ค่าใช้จ่าย: 2,362.5

C # มรดกหลาย

C # ไม่สนับสนุนมรดกหลายอย่างไรก็ตามคุณสามารถใช้อินเตอร์เฟซเพื่อให้บรรลุมรดกหลาย โปรแกรมต่อไปนี้แสดงให้เห็นถึงจุดนี้:

การใช้ระบบ
InheritanceApplication namespace
{
   รูปร่างระดับ 
   {
      โมฆะสาธารณะ setWidth (int W)
      {
         width = W;
      }
      โมฆะสาธารณะ setHeight (int เอช)
      {
         height = เอช;
      }
      การป้องกันความกว้าง int;
      การป้องกันความสูง int;
   }

   // PaintCost ระดับฐาน
   PaintCost อินเตอร์เฟซที่สาธารณะ 
   {
      int getCost (พื้นที่ int);

   }
   // ระดับชั้นเรียนมาสี่เหลี่ยมผืนผ้า: รูปร่าง PaintCost
   {
      int สาธารณะ getArea ()
      {
         กลับ (กว้าง * สูง);
      }
      int สาธารณะ getCost (int พื้นที่)
      {
         พื้นที่ผลตอบแทน * 70;
      }
   }
   ระดับ RectangleTester
   {
      เป็นโมฆะคง main (String args [])
      {
         ดูแลรักษา Rectangle = สี่เหลี่ยมผืนผ้าใหม่ ();
         พื้นที่ int;
         Rect.setWidth (5)
         (7) Rect.setHeight;
         พื้นที่ = Rect.getArea ();
         // พิมพ์พื้นที่ของวัตถุ Console.WriteLine ( "พื้นที่ทั้งหมด: {0}" Rect.getArea ());
         Console.WriteLine ( "สีค่าใช้จ่ายทั้งหมด: $ {0}" Rect.getCost (พื้นที่));
         Console.ReadKey ();
      }
   }
}

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

พื้นที่ทั้งหมด: 35
สีค่าใช้จ่ายทั้งหมด: $ 2,450