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 # Generics (ทั่วไป)

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

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

การใช้ระบบ
ใช้ System.Collections.Generic;

GenericApplication namespace
{
    เรียนสาธารณะ MyGenericArray <T>
    {
        ส่วนตัว T [] อาร์เรย์;
        MyGenericArray สาธารณะ (ขนาด int)
        {
            อาร์เรย์ = ใหม่ t [ขนาด + 1];
        }
        ประชาชน T GetItem (ดัชนี int)
        {
            กลับอาร์เรย์ [ดัชนี];
        }
        โมฆะสาธารณะ setItem (ดัชนี int, T คุ้มค่า)
        {
            อาร์เรย์ [ดัชนี] = ค่า;
        }
    }
           
    ทดสอบระดับ
    {
        เป็นโมฆะคง main (String args [])
        {
            // ประกาศเป็นจำนวนเต็มอาร์เรย์ MyGenericArray <int> intArray = ใหม่ MyGenericArray <int> (5)
            // การตั้งค่าสำหรับ (int c = 0; C <5; C ++)
            {
                intArray.setItem (C, C * 5)
            }
            // รับค่า (int c = 0; C <5; C ++)
            {
                Console.Write (intArray.getItem (c) + "");
            }
            Console.WriteLine ();
            // ประกาศอาร์เรย์ตัวอักษร MyGenericArray <ถ่าน> charArray = ใหม่ MyGenericArray <ถ่าน> (5)
            // การตั้งค่าสำหรับ (int c = 0; C <5; C ++)
            {
                charArray.setItem (ค (ถ่าน) (C + 97));
            }
            // รับค่า (int c = 0; C <5; C ++)
            {
                Console.Write (charArray.getItem (c) + "");
            }
            Console.WriteLine ();
            Console.ReadKey ();
        }
    }
}

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

05101520
ABCDE

ทั่วไป (ทั่วไป) คุณสมบัติ

การใช้ยาชื่อสามัญเป็นโปรแกรมที่จะเพิ่มขีดความสามารถทางเทคนิคโดยเฉพาะในด้านต่อไปนี้:

  • มันจะช่วยให้คุณสามารถเพิ่มการใช้ซ้ำรหัสชนิดของการป้องกันความปลอดภัยและการปรับปรุงประสิทธิภาพ
  • คุณสามารถสร้างคอลเลกชันเรียนทั่วไป ห้องสมุด NET Framework ที่มีระดับชั้นเรียนหลายคอลเลกชันใหม่ทั่วไปใน namespaceSystem.Collections.Genericคุณสามารถใช้เรียนคอลเลกชันเหล่านี้ทั่วไปแทนSystem.Collectionsเรียนคอลเลกชัน
  • คุณสามารถสร้างการเชื่อมต่อของคุณเองทั่วไปเรียนทั่วไปวิธีการทั่วไปเหตุการณ์ทั่วไปและผู้ร่วมประชุมทั่วไป
  • คุณสามารถ จำกัด ชั้นทั่วไปในการเข้าถึงข้อมูลที่เฉพาะเจาะจงประเภท
  • เกี่ยวกับชนิดข้อมูลทั่วไปที่ใช้ในประเภทของข้อมูลที่สามารถรับได้ในเวลาทำงานโดยใช้การสะท้อน

ทั่วไป (ทั่วไป) วิธีการ

ในตัวอย่างข้างต้นเราได้ใช้ระดับทั่วไปเราสามารถประกาศพารามิเตอร์พิมพ์วิธีการทั่วไป โปรแกรมต่อไปนี้แสดงให้เห็นถึงแนวคิดนี้:

การใช้ระบบ
ใช้ System.Collections.Generic;

GenericMethodAppl namespace
{
    Program รุ่น
    {
        เป็นโมฆะคง Swap <T> (Ref T LHS อ้างอิง T RHS)
        {
            T อุณหภูมิ;
            อุณหภูมิ = LHS;
            LHS = RHS;
            RHS = อุณหภูมิ;
        }
        เป็นโมฆะคง main (String args [])
        {
            int A, B;
            ถ่าน C, D;
            A = 10;
            B = 20;
            C = 'ฉัน';
            D = 'V';

            // แสดงผลก่อน Console.WriteLine ค่าตลาดหลักทรัพย์ ( "ค่า Int ก่อนที่จะเรียกแลกเปลี่ยน:");
            Console.WriteLine ( "A = {0}, B = {1}", A, B);
            ( "ค่า Char ก่อนที่จะเรียกแลกเปลี่ยน:") Console.WriteLine;
            Console.WriteLine ( "C = {0}, D = {1}", C, D);

            // แลกเปลี่ยนโทร
            Swap <int> (เตะอ้างอิง B);
            Swap <ถ่าน> (Ref C, D โทษ);

            // หลังจากการแลกเปลี่ยน Console.WriteLine ค่าการแสดงผล ( "ค่า Int หลังจากเรียกแลกเปลี่ยน:");
            Console.WriteLine ( "A = {0}, B = {1}", A, B);
            ( "ค่า Char หลังจากเรียกแลกเปลี่ยน:") Console.WriteLine;
            Console.WriteLine ( "C = {0}, D = {1}", C, D);
            Console.ReadKey ();
        }
    }
}

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

ค่า Int ก่อนที่จะเรียกแลกเปลี่ยน:
A = 10 B = 20
ค่าถ่านก่อนที่จะเรียกแลกเปลี่ยน:
c = I, D = V
ค่า Int หลังจากเรียกแลกเปลี่ยน:
A = 20 B = 10
ค่าถ่านหลังจากเรียกแลกเปลี่ยน:
c = V, D = ฉัน

ทั่วไป (ทั่วไป) นาย

คุณสามารถกำหนดผ่านพารามิเตอร์ประเภทผู้ร่วมประชุมทั่วไป ตัวอย่างเช่น:

ผู้รับมอบสิทธิ์ T NumberChanger <T> (T N);

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้งานของคณะกรรมการ:

การใช้ระบบ
ใช้ System.Collections.Generic;

ผู้รับมอบสิทธิ์ T NumberChanger <T> (T N);
GenericDelegateAppl namespace
{
    ระดับ TestDelegate
    {
        int NUM คงที่ = 10;
        สาธารณะคง int AddNum (int P)
        {
            NUM + = p;
            กลับ NUM;
        }

        สาธารณะคง int MultNum (int Q)
        {
            NUM * = Q;
            กลับ NUM;
        }
        int สาธารณะคง getNum ()
        {
            กลับ NUM;
        }

        เป็นโมฆะคง main (String args [])
        {
            // สร้างตัวอย่างผู้รับมอบสิทธิ์ NumberChanger <int> NC1 = ใหม่ NumberChanger <int> (AddNum);
            NumberChanger <int> NC2 = ใหม่ NumberChanger <int> (MultNum);
            // วิธีการเรียกใช้ NC1 ผู้รับมอบวัตถุ (25);
            Console.WriteLine ( "ค่าของ Num: {0}" getNum ());
            NC2 (5)
            Console.WriteLine ( "ค่าของ Num: {0}" getNum ());
            Console.ReadKey ();
        }
    }
}

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

ค่าของ Num: 35
ค่าของ Num: 175