Latest web development tutorials

C # فئة (فئة)

عند تعريف فئة، عليك أن تحدد مخططا لنوع البيانات. هذا في الواقع لا يعرف أي بيانات، لكنه يعرف اسم الفئة ما يعنيه، وهذا هو، ما يشكل فئة الكائن وتنفيذ ما عمليات على الكائن. الكائنات مثيلات الفئات. الأساليب والمتغيرات التي تشكل الطبقة يصبح أفراد الطبقة.

تعريف الفئة

تعريف الطبقة هو أن تبدأ، متبوعا باسم فئة منالطبقة الكلمة.جسد الطبقة، الواردة في زوج من الأقواس المعقوفة. ما يلي هو الشكل العام للتعريف الفئة:

<محدد الوصول> الطبقة CLASS_NAME 
{
    // المتغيرات الأعضاء
    <محدد الوصول> <نوع البيانات> variable1.
    <محدد الوصول> <نوع البيانات> variable2.
    ...
    <محدد الوصول> <نوع البيانات> variableN.
    // أساليب الأعضاء
    <محدد الوصول> <نوع الإرجاع> method1 (parameter_list) 
    {
        // هيئة الطريقة 
    }
    <محدد الوصول> <نوع الإرجاع> method2 (parameter_list) 
    {
        // هيئة الطريقة 
    }
    ...
    <محدد الوصول> <نوع الإرجاع> methodN (parameter_list) 
    {
        // هيئة الطريقة 
    }
}

يرجى ملاحظة ما يلي:

  • وصول معرف <الوصول محدد> يحدد الطبقة قاعدة وصول وأعضائها. إذا لم يكن محددا، وصول معرف الافتراضية. الوصول الافتراضية معرف الفئة هيالداخلية، وأعضاء معرف الوصول الافتراضي الخاص.
  • نوع البيانات <نوع البيانات> يحدد نوع المتغير، نوع الإرجاع <نوع الإرجاع> يحدد نوع البيانات التي تم إرجاعها من قبل إرجاع الأسلوب.
  • إذا كنت ترغب في الوصول إلى عضو من الطبقة، وتريد أن تستخدم نقطة (.) المشغل.
  • مشغل نقطة يربط اسم اسم وأعضاء الجسم.

وتوضح الأمثلة التالية المفاهيم ناقشت حتى الآن:

باستخدام نظام.
مساحة BoxApplication
{
    الطبقة صندوق
    {
       طول العام مزدوج، // طول اتساع مزدوج العام؛ // عرض ارتفاع مزدوج العام؛ // ارتفاع}
    الطبقة Boxtester
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            مربع Box1 = جديد مربع ()؛ // إعلان Box1، نوع مربع
            مربع Box2 = جديد مربع ()؛ // إعلان Box2، نوع مربع
            حجم مزدوج = 0.0؛ // // حجم Box1 تفاصيل Box1.height = 5.0.
            Box1.length = 6.0؛
            Box1.breadth = 7.0.

            // Box2 تفاصيل Box2.height = 10.0؛
            Box2.length = 12.0؛
            Box2.breadth = 13.0؛
           
            // Box1 حجم حجم = Box1.height * Box1.length * Box1.breadth.
            Console.WriteLine ( "حجم Box1: {0}"، وحدة التخزين).

            // Box2 حجم حجم = Box2.height * Box2.length * Box2.breadth.
            Console.WriteLine ( "حجم Box2: {0}"، وحدة التخزين).
            Console.ReadKey ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

حجم Box1: 210
حجم Box2: 1560

وظائف الأعضاء وحزمة

وظائف عضو الفئة هو تعريف أو وظيفة النموذج في تعريف الفئة، تماما مثل أي متغير آخر. كعضو في الصف، يمكن أن تعمل على أي فئة الكائن، وجميع أعضاء ويمكن الوصول إلى الطبقة الكائن.

المتغيرات الأعضاء هي خصائص الكائنات (من ناحية التصميم)، وأنها لا تزال الخاص لتنفيذ الحزمة. لا يمكن إلا أن هذه المتغيرات يمكن استخدامها للوصول إلى وظائف الأعضاء العامة.

دعونا استخدام المفاهيم المذكورة أعلاه لتحديد والحصول على قيمة من نوع مختلف من أعضاء الفئة:

باستخدام نظام.
مساحة BoxApplication
{
    الطبقة صندوق
    {
       طول المزدوج الخاص؛ // طول اتساع الخاص مزدوج؛ // الإرتفاع المزدوج الخاص؛ // ارتفاع setLength الفراغ الجمهور (ليون مزدوج)
       {
            طول = ليون.
       }

       setBreadth الفراغ الجمهور (الف مزدوج)
       {
            اتساع = الف.
       }

       setHeight الفراغ الجمهور (التعليم العالي مزدوج)
       {
            ارتفاع = مؤسسات التعليم العالي.
       }
       مزدوجة getVolume العامة ()
       {
           طول عودة * اتساع * الارتفاع.
       }
    }
    الطبقة Boxtester
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            مربع Box1 = جديد مربع ()؛ // إعلان Box1، نوع مربع
            مربع Box2 = جديد مربع ()؛ // إعلان Box2، نوع مربع
            حجم مزدوج، // // 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}"، وحدة التخزين).
           
            Console.ReadKey ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

حجم Box1: 210
حجم Box2: 1560

C # الصانعين

منشئ الطبقة هي وظيفة عضو الفئة الخاصة المنفذة عند إنشاء فئة كائن جديدة.

الاسم اسم منشئ فئة بالضبط نفس الشيء، فإنه لا يوجد لديه نوع الإرجاع.

يوضح المثال التالي مفهوم المنشئ:

باستخدام نظام.
مساحة LineApplication
{
   الخط الطبقة
   {
      طول المزدوج الخاص؛ // طول الخط العام خط ()
      {
         Console.WriteLine ( "تم إنشاء كائن")؛
      }

      setLength الفراغ الجمهور (ليون مزدوج)
      {
         طول = ليون.
      }
      getLength مزدوج العام ()
      {
         العودة طول.
      }

      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         خط خط = خط جديد ()؛    
         // تعيين line.setLength طول الخط (6.0)؛
         Console.WriteLine ( "ويبلغ طول الخط: {0}"، line.getLength ())؛
         Console.ReadKey ()؛
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

إنشاء كائنات طول الخط: 6

منشئ افتراضي ليس له المعلمات.ولكن إذا كنت في حاجة الى منشئ مع المعلمة يمكن أن يكون الحجج، ويسمى هذا المنشئمنشئ معلمات.هذه التقنية يمكن أن تساعدك على إنشاء كائن بينما الكائن لتعيين القيم الأولية، انظر الأمثلة المحددة التالية:

باستخدام نظام.
مساحة LineApplication
{
   الخط الطبقة
   {
      طول المزدوج الخاص؛ // طول الخط العام خط (ليون مزدوج) // منشئ معلمات {
         Console.WriteLine ( "تم إنشاء الكائن، طول = {0}"، ليون)؛
         طول = ليون.
      }

      setLength الفراغ الجمهور (ليون مزدوج)
      {
         طول = ليون.
      }
      getLength مزدوج العام ()
      {
         العودة طول.
      }

      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         خط خط = الخط الجديد (10.0)؛
         Console.WriteLine ( "ويبلغ طول الخط: {0}"، line.getLength ())؛ 
         // تعيين line.setLength طول الخط (6.0)؛
         Console.WriteLine ( "ويبلغ طول الخط: {0}"، line.getLength ())؛ 
         Console.ReadKey ()؛
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

كائن تم إنشاؤه، طول = 10
طول الخط: 10
طول الخط: 6

في C # المدمر

المدمر الطبقة هو خاص وظيفة عضو الفئة، عندما يكون نوع الكائن خارج النطاق.

اسم المدمر هو أمام اسم الفئة مع مائج (~) كما بادئة، فإنه لا ترجع قيمة، فإنه يأخذ أية معلمات.

المدمر لنهاية البرنامج (مثل إغلاق الملفات لتحرير الذاكرة، الخ) قبل الإفراج عن الموارد. تالفة لا يمكن أن تكون وراثية أو فوق طاقتها.

يوضح المثال التالي مفهوم المدمر:

باستخدام نظام.
مساحة LineApplication
{
   الخط الطبقة
   {
      طول الخاص مزدوج؛ // طول الخط العام خط () // منشئ {
         Console.WriteLine ( "تم إنشاء كائن")؛
      }
      ~ الخط () // المدمر {
         Console.WriteLine ( "تم حذف كائن")؛
      }

      setLength الفراغ الجمهور (ليون مزدوج)
      {
         طول = ليون.
      }
      getLength مزدوج العام ()
      {
         العودة طول.
      }

      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         خط خط = خط جديد ()؛
         // تعيين line.setLength طول الخط (6.0)؛
         Console.WriteLine ( "ويبلغ طول الخط: {0}"، line.getLength ())؛           
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

إنشاء كائنات طول الخط: 6
الكائنات المحذوفة 

C # الطبقة عضو ثابت

يمكننا استخدام وأعلن عضو فئةثابتة الكلمة ثابت.عندما نعلن عضو فئة غير ثابت، وهذا يعني أنه مهما تم إنشاء العديد من كائن الفئة، هناك نسخة واحدة فقط من أعضاء ثابتة.

فقط مثيل واحد من أعضاءساكنة الكلمة تعني تلك الفئة.المتغيرات ثابتة تستخدم لتعريف الثوابت، لأن قيمتها يمكن أن يطلق عليه مباشرة دون الحاجة إلى إنشاء مثيل من فئة فئة الحصول عليها. المتغيرات ثابتة يمكن تهيئة في تعريف الدالة العضو خارجية أو فئة. يمكنك أيضا تهيئة المتغيرات ثابتة محددة داخل الطبقة.

يوضح المثال التالي استخداممتغيرات ثابتة:

باستخدام نظام.
مساحة StaticVarApplication
{
    الطبقة StaticVar
    {
       العامة الأسطوانات كثافة ثابتة.
        عدد باطلة العامة ()
        {
            الأسطوانات ++؛
        }
        getNum كثافة العمليات العامة ()
        {
            العودة الأسطوانات.
        }
    }
    الطبقة StaticTester
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            StaticVar S1 = StaticVar الجديدة ()؛
            StaticVar S2 = StaticVar الجديدة ()؛
            s1.count ()؛
            s1.count ()؛
            s1.count ()؛
            s2.count ()؛
            s2.count ()؛
            s2.count ()؛         
            Console.WriteLine ( "الأسطوانات المتغيرة S1: {0}"، s1.getNum ())؛
            Console.WriteLine ( "الأسطوانات المتغيرة S2: ​​{0}"، s2.getNum ())؛
            Console.ReadKey ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

S1 الأسطوانات متغير: 6
S2 الأسطوانات متغير: 6

يمكنك أيضا وضعيتم الإعلان عن وظيفة الأعضاءوثابت. ويمكن لهذه المهام فقط الوصول إلى متغيرات ثابتة. وظيفة ثابتة قبل أن يتم إنشاء الكائن، كان موجودا. يوضح المثال التالي استخداموظائف ثابتة:

باستخدام نظام.
مساحة StaticVarApplication
{
    الطبقة StaticVar
    {
       العامة الأسطوانات كثافة ثابتة.
        عدد باطلة العامة ()
        {
            الأسطوانات ++؛
        }
        الباحث ثابت العام getNum ()
        {
            العودة الأسطوانات.
        }
    }
    الطبقة StaticTester
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            StaticVar ق = StaticVar الجديدة ()؛
            s.count ()؛
            s.count ()؛
            s.count ()؛                   
            Console.WriteLine ( "الصيغة الرقمية متغير: {0}"، StaticVar.getNum ())؛
            Console.ReadKey ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

متغير الأسطوانات: 3