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

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

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

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

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

طريقة المثيل

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

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

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

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

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

باستخدام النظام ؛
مساحة الاسم funcex1
{
اختبار الصف
{
باطل SayHello ()
{
Console.WriteLine ("Hello") ؛
}
}
برنامج الطبقة
{
ثابت الفراغ الرئيسي (سلسلة الحجج)
{
var t = اختبار جديد () ؛
t.SayHello () ؛
Console.ReadKey () ؛
}
}
}

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

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

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

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

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

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

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

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

أضف ذلك مباشرة بعد قل مرحبا() الطريقة في المثال الأول وإضافة هذين السطرين من قبل Console.ReadKey ().

فار العمر = t.MyAge () ؛
Console.WriteLine ("David is {0} years"، age)؛

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

مرحبا

ديفيد هو 53 سنة ،

ال فار العمر = t.MyAge () ؛ أعاد call to the method القيمة 53. إنها ليست الوظيفة الأكثر فائدة. مثال أكثر فائدة هو دالة Sum في جدول البيانات مع مجموعة من البينات وفهرس البداية وعدد القيم التي يجب جمعها.

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

تعويم عام مجموع (القيم int ، int startindex ، int endindex)
{
فار المجموع = 0 ؛
لـ (var index = startindex ؛ الفهرس <= endindex ؛ الفهرس ++)
{
إجمالي + = valueindex.
}
مجموع العودة ؛
}

فيما يلي ثلاث حالات استخدام. هذا هو الكود الذي يجب إضافته في Main () والاتصال لاختبار وظيفة Sum.

var values ​​= new int10 {1، 2، 3، 4، 5، 6، 7، 8، 9،10}؛
Console.WriteLine (t.Sum (القيم، 0،2))؛ // يجب أن يكون 6
Console.WriteLine (t.Sum (القيم، 0،9))؛ / / يجب أن يكون 55
Console.WriteLine (t.Sum (القيم، 9،9))؛ يجب أن يكون // 10 حيث أن القيمة 9 هي 10

يضيف For loop القيم في النطاق startindex إلى endindex ، لذلك في startindex = 0 و endindex = 2 ، هذا هو مجموع 1 + 2 + 3 = 6. في حين أنه من أجل 9،9 ، فإنه يضيف القيم الوحيدة 9 = 10.

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