مقدمة للوظائف في C #

click fraud protection

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

قد يتضمن برنامج لإدارة جداول البيانات دالة sum () كجزء من كائن ، على سبيل المثال.

في C # ، يمكن تسمية وظيفة دالة عضو - وهي عضو في فئة - ولكن هذا المصطلح ترك من C ++. الاسم المعتاد هو طريقة.

طريقة المثيل

هناك نوعان من الطرق: طريقة المثيل وطريقة ثابتة. تغطي هذه المقدمة طريقة المثيل.

يحدد المثال أدناه فئة بسيطة ويسميها اختبار. هذا المثال هو برنامج وحدة تحكم بسيط ، لذلك يُسمح بذلك. عادة ، يجب أن تكون الفئة الأولى المحددة في ملف C # هي فئة النموذج.

من الممكن أن يكون لديك صف فارغ مثل هذا اختبار الفصل {}، لكنها ليست مفيدة. على الرغم من أنها تبدو فارغة ، إلا أنها - مثل جميع فئات C # - ترث من الكائن الذي يحتوي عليها وتتضمن افتراضيًا البناء في البرنامج الرئيسي.

var t = اختبار جديد () ؛

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

باستخدام النظام ؛
instagram viewer

مساحة الاسم funcex1
{
اختبار الصف
{
الفراغ العام SayHello ()
{
وحدة التحكم. WriteLine ("مرحبًا") ؛
}
}
برنامج الطبقة
{
الفراغ الثابت الرئيسي (سلسلة [] قوس)
{
var t = اختبار جديد () ؛
ر. قل مرحبا() ؛
وحدة التحكم. مفتاح قراءة() ؛
}
}
}

يتضمن هذا المثال رمز وحدة التحكم. مفتاح قراءة()، لذلك عند تشغيله ، فإنه يعرض نافذة وحدة التحكم وينتظر إدخال مفتاح مثل Enter أو Space أو Return (وليس مفاتيح shift أو Alt أو Ctrl). بدونه ، سيفتح نافذة وحدة التحكم ، ويخرج "مرحبًا" ثم يغلق الكل في غمضة عين.

الوظيفة قل مرحبا هي وظيفة بسيطة بقدر ما تستطيع. إنها وظيفة عامة ، مما يعني أن الوظيفة مرئية من خارج الفصل.

إذا قمت بإزالة الكلمة عامة ومحاولة تجميع التعليمات البرمجية ، يفشل مع خطأ ترجمة "funcex1.test. يتعذر الوصول إلى SayHello () 'نظرًا لمستوى الحماية الخاص بها. "إذا أضفت كلمة" خاص "حيث كانت الكلمة" عامة "وأعيد تجميعها ، فستحصل على نفس خطأ الترجمة. ما عليك سوى تغييره مرة أخرى إلى "عام".

الكلمة باطل في الدالة يعني أن الدالة لا تُرجع أي قيم.

خصائص تعريف الوظيفة النموذجية

  • مستوى الوصول: عام ، خاص بالإضافة إلى البعض الآخر
  • قيمة الإرجاع>: باطلة أو أي نوع مثل int
  • اسم الطريقة: SayHello
  • أي معلمات طريقة: لا شيء في الوقت الحالي. يتم تعريفها في الأقواس () بعد اسم الطريقة

رمز تعريف وظيفة أخرى ، MyAge () ، هو:

الجمهور الدولي MyAge ()
{
عودة 53 ؛
}

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

فار العمر = ر. عمري()؛
وحدة التحكم. WriteLine ("عمر ديفيد {0} سنة" ، العمر) ؛

يؤدي تشغيل البرنامج الآن إلى إخراج هذا:

مرحبا
يبلغ ديفيد من العمر 53 عامًا ،

ال فار العمر = ر. عمري()؛ إرجاع استدعاء الأسلوب القيمة 53. إنها ليست الوظيفة الأكثر فائدة. مثال أكثر فائدة هو الدالة Sum جدول البيانات مع صفيف أحبارومؤشر البدء وعدد القيم المطلوب جمعها.

هذه هي الوظيفة:

تعويم عام Sum (قيم int [] ، int startindex ، int endindex)
{
var var = 0 ؛
for (var index = startindex؛ فهرس <= endindex ؛ index ++)
{
المجموع + = القيم [فهرس] ؛
}
إجمالي العائد ؛
}

هنا ثلاث حالات استخدام. هذا هو الرمز المراد إضافته في Main () واستدعاء لاختبار دالة Sum.

var value = new int [10] {1، 2، 3، 4، 5، 6، 7، 8، 9،10} ؛
وحدة التحكم. اكتب خط (ر. Sum (القيم ، 0،2)) ؛ // يجب أن يكون 6
وحدة التحكم. اكتب خط (ر. Sum (القيم ، 0،9)) ؛ // يجب أن يكون 55
وحدة التحكم. اكتب خط (ر. Sum (القيم ، 9 ، 9)) ؛ // يجب أن تكون 10 لأن القيمة التاسعة هي 10

ولل عقدة يضيف القيم الموجودة في النطاق startindex إلى endindex ، لذا بالنسبة لـ startindex = 0 و endindex = 2 ، هذا هو مجموع 1 + 2 + 3 = 6. بينما بالنسبة لـ 9،9 ، فإنه يضيف فقط القيم الواحدة [9] = 10.

داخل الوظيفة ، تتم تهيئة إجمالي المتغير المحلي إلى 0 ثم تتم إضافة الأجزاء ذات الصلة من قيم الصفيف.

instagram story viewer