بفضل الله في سلسة من المقالات سنتناول نشر دروس تعليم سي شارب C# ستكون شاملة ووافية للمبتدئين والمستوى المتوسط . سلسلة مقالات مأخوذة من كوداتي نتمنى أن تكون مفيدة لجميع الدارسين . وسنتناول في هذا المقال الدوال في لغة سي شارب C# Methods
سلسلة دروس تعلم سي شارب C# بالعربية
تم شرح فيما سبق :-
- الدرس الأول : مقدمة عن السي شارب #C
- الدرس الثاني : تركيب الجملة في سي شارب Syntax
- الدرس الثالث : التعليقات في سي شارب Comments
- الدرس الرابع : الطباعة في سي شارب Output
- الدرس الخامس : المتغيرات في سي شارب Variables
- الدرس السادس : المدخلات في سي شارب Inputs
- الدرس السابع : العمليات الرياضية في سي شارب Arithmetic Operations
- الدرس الثامن : العمليات المنطقية في سي شارب Logic Operations
- الدرس التاسع : الجمل الشرطية في سي شارب Condition Statement
- الدرس العاشر : الحلقات التكرارية في سي شارب Loops
- الدرس الحادي عشر : المصفوفات في سي شارب Array
الدرس الثاني عشر : الدوال في سي شارب Methods
في هذا الدرس سنتاول الدوال في لغة سي شارب C#
- الدوال Methods
- عمل اكثر من دالة
- معاملات الدوال Methods Parameters
- الارجاع في الدوال Return Methods
الدوال Methods
عبارة عن مجموعة من الأوامر أو الاكواد تحت اسم معين لعمل مهمة محددة تعمل فقط عندما يتم استدعائها ، ويتم تطبيقها علي مدخلات “parameters” أو بدونها ويمكن أن تعود بقيمة او لاتعود .
Syntax
class Program
{
static void myMethod()
{
// code to be executed
}
}
توضيح :
- static وتعني ان هذه الدالة تنتمي الى الكلاس Program وليست تنتمي الى فئة داخل هذا الكلاس , ستكون واضحه اكثر في قسم البرمجة الكائنية التوجه
- void تعني ان الدالة لا تقوم بارجاع اي قيمة
- myMethod اسم الدالة ويمكن كتابة اي اسم اختياري
- مثال في هذه المثال قمنا بانشاء دالة ثانية وقمنا بتسميتها myMethod وهذه الدالة فقط تعمل على طباعة رسالة كمثال بسيط وتم أستدعائها داخل الدالة الرئيسية ال Main :
using System;
namespace Example
{
class Program
{
static void Main(string[] args){
myMethod(); // الاستدعاء
}
static void myMethod() {
Console.WriteLine(“Hello World”);
}
}
}
Output :
Hello World
مثال ثاني استدعاء الدالة اكثر من مرة
static void myMethod() {
Console.WriteLine(“Hello World”);
}
static void Main(string[] args){
myMethod();
myMethod();
myMethod();
}
Output :
Hello World
Hello World
Hello World
عمل اكثر من دالة
static void method1() {
Console.WriteLine(“I am Method 1”);
}
static void method2() {
Console.WriteLine(“I am Method 2”);
}
static void Main(string[] args){
method1();
method2();
}
Output :
I am Method 1
I am Method 2
معاملات الدوال Methods Parameters
يمكن تمرير البيانات او المعلومات الى الدوال methods كمعاملات Parameters , والمعاملات هي متغيرات داخل الدالة يتم كتابتها داخل الاقواس بعد اسم الدالة ويمكن اضافة العديد من المعاملات بدون تقييد.
Syntax
static void myMethods(param1,param2,…) {
// code to be executed
}
مثال
static void student(string name,int degree) {
// code to be executed
}
مثال الاول
في هذا المثال مررنا معامل parameter واحد من نوع string ليتم طباعته
static void printName(string name) {
Console.WriteLine(“Hello “+ name);
}
static void Main(string[] args){
printName(“Saif”);
printName(“Ali”);
printName(“Ahmed”);
}
Output :
Hello Saif
Hello Ali
Hello Ahmed
مثال ثاني
في هذا المثال مررنا معاملين two parameter واحد من نوع String والثاني من نوع int
static void student(string name,int age) {
Console.WriteLine(“Name :”+name+”,Age :”+age);
}
static void Main(string[] args){
student(“Saif”,25);
student(“Ali”,19);
}
Output :
Name :Saif, Age :25
Name :Ali, Age :19
مثال ثالث
في هذا المثال تم أستخدام اربعة دوال لأجراء عمليات الجمع والطرح والضرب والقسمة
static void sumMethod(int num1,int num2) {
int sum=num1+num2;
Console.WriteLine(“Sum = “+sum);
}
static void subMethod(int num1,int num2) {
int sub=num1-num2;
Console.WriteLine(“Sub = “+sub);
}
static void mulMethod(int num1,int num2) {
int mul=num1*num2;
Console.WriteLine(“Mul = “+mul);
}
static void divMethod(int num1,int num2) {
int div=num1/num2;
Console.WriteLine(“Div = “+div);
}
static void Main(string[] args){
sumMethod(5,10);
subMethod(20,10);
mulMethod(2,6);
divMethod(10,2);
}
Output :
Sum = 15
Sub = 10
Mul = 12
Div = 5
الارجاع في الدوال Return Methods
في هذا المثال نتعرف كيفية التعامل مع الارجاع return في الدوال
return تستخدم لأرجاع قيمة بعد معالجتها الى الدالة الرئيسية ليتم تضمينها في متغير أو أجراء معالجات أخرى عليها ضمن الدالة الرئيسية .
انواع الارجاع في الدروس السابقة تم تعريف جميع الدوال على انها void اي ان الدالة لا ترجع اي قيمة اما في الدرس التالي سنتعلم كيف ان الدالة تقوم بارجاع قيم من اي نوع سواء كانت قيم int او string او غيرها من خلال كتابة النوع بدلاُ من void .
Syntax
static int myMethods() {
// return int
}
static string myMethods() {
// return String
}
static bool myMethods() {
// return Boolean
}
مثال
قمنا في هذا المثال بتعريف دالة اسمها increaseMethod تحتوي على معامل واحد وقمنا بكتابة النوع int بدل الvoid وضيفتها زيادة اي رقم يتم تمريره بمقدار 20 , في الدالة الرئيسية قمنا بتمرير قيمة 60 الى الدالة increaseMethod والتي بدورها ارجعت لنا ال60 مضاف عليها 20 وبالتالي المجموع يساوي 80 .
static int increaseMethod(int x) {
return x+20;
}
static void Main(string[] args){
Console.WriteLine(increaseMethod(60));
}
Output :
80
مثال ثاني قمنا في هذا المثال بتعريف دالة اسمها SumMethods تحتوي على معاملين وقمنا بكتابة النوع int بدل الvoid لانها تقوم بجمع الرقين وترجع ناتج الجمع الى الدالة الرئيسية ليتم وضعها بمتغير الsum الذي تم تعريفه في دالة الرئيسية .
static int SumMethods(int num1,int num2) {
int s=num1+num2;
return s;
}
static void Main(string[] args){
int sum=SumMethods(5,10);
Console.WriteLine(“Sum = “+sum);
}
Output :
Sum = 15