CSHARPWINDOWSFORM Telegram 188
الفرق بين ref و out من الكلمات الرئيسية في C #

الكلمة ref
1- من الضروري تهيئة المعلمات قبل تمريرها إلى الدالة
2- ليس من الضروري تهيئة قيمة المعلمة قبل العودة إلى دالة الاستدعاء
3- يفيد تمرير القيمة من خلال ref عندما تحتاج الدالة المطلوبة أيضًا إلى تغيير قيمة المعلمة التي تم تمريرها.


امثلة :

public void Sum(ref int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x=4;
Sum(ref x);

MessageBox.Show(x.ToString());
}
// OutPut -> 80

لاحظ كيف تم تغيير قيمة المتغير x في الدالة Form2_Load وذلك بسبب تمرير المتغير بالمرجعية

لو نقوم بتمرير المتغير بالقيمة لن يتم تغيير القيمة في الدالة Form2_Load

مثال
public void Sum( int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x=4;
Sum( x);

MessageBox.Show(x.ToString());
}
// OutPut -> 4

لو نقوم بتمرير متغير مرجعي بدون تهيئته بقيمة سوف تحصل على Error

مثال :

public void Sum(ref int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x; // Error
Sum(ref x);

MessageBox.Show(x.ToString());
}


الكلمة out


1- ليس من الضروري تهيئة المعلمات قبل تمريرها إلى الدالة
2- من الضروري تهيئة قيمة المعلمة قبل العودة إلى دالة الاستدعاء
3- نفس كلمة ref في رقم 3


امثلة :

public void Sum(out int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x= 10;
Sum(out x);

MessageBox.Show(x.ToString());
}
// OutPut -> 80



مثال اخر
public void Sum(out int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x; //
Sum(out x);

MessageBox.Show(x.ToString());
}
// OutPut -> 80



اخر مثال

public void Sum(out int x)
{



}

private void Form2_Load(object sender, EventArgs e)
{
int x = 50;
Sum(out x);

MessageBox.Show(x.ToString());
}

//Error
سببب الخطاء من الضروري تهيئة قيمة المعلمة قبل العودة إلى دالة الاستدعاء




انتهى ....................



tgoop.com/CsharpWindowsForm/188
Create:
Last Update:

الفرق بين ref و out من الكلمات الرئيسية في C #

الكلمة ref
1- من الضروري تهيئة المعلمات قبل تمريرها إلى الدالة
2- ليس من الضروري تهيئة قيمة المعلمة قبل العودة إلى دالة الاستدعاء
3- يفيد تمرير القيمة من خلال ref عندما تحتاج الدالة المطلوبة أيضًا إلى تغيير قيمة المعلمة التي تم تمريرها.


امثلة :

public void Sum(ref int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x=4;
Sum(ref x);

MessageBox.Show(x.ToString());
}
// OutPut -> 80

لاحظ كيف تم تغيير قيمة المتغير x في الدالة Form2_Load وذلك بسبب تمرير المتغير بالمرجعية

لو نقوم بتمرير المتغير بالقيمة لن يتم تغيير القيمة في الدالة Form2_Load

مثال
public void Sum( int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x=4;
Sum( x);

MessageBox.Show(x.ToString());
}
// OutPut -> 4

لو نقوم بتمرير متغير مرجعي بدون تهيئته بقيمة سوف تحصل على Error

مثال :

public void Sum(ref int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x; // Error
Sum(ref x);

MessageBox.Show(x.ToString());
}


الكلمة out


1- ليس من الضروري تهيئة المعلمات قبل تمريرها إلى الدالة
2- من الضروري تهيئة قيمة المعلمة قبل العودة إلى دالة الاستدعاء
3- نفس كلمة ref في رقم 3


امثلة :

public void Sum(out int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x= 10;
Sum(out x);

MessageBox.Show(x.ToString());
}
// OutPut -> 80



مثال اخر
public void Sum(out int x)
{
x = 80;


}

private void Form2_Load(object sender, EventArgs e)
{
int x; //
Sum(out x);

MessageBox.Show(x.ToString());
}
// OutPut -> 80



اخر مثال

public void Sum(out int x)
{



}

private void Form2_Load(object sender, EventArgs e)
{
int x = 50;
Sum(out x);

MessageBox.Show(x.ToString());
}

//Error
سببب الخطاء من الضروري تهيئة قيمة المعلمة قبل العودة إلى دالة الاستدعاء




انتهى ....................

BY برمجة تطبيقات الويندوز C# Programming


Share with your friend now:
tgoop.com/CsharpWindowsForm/188

View MORE
Open in Telegram


Telegram News

Date: |

During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month. Hashtags Invite up to 200 users from your contacts to join your channel Content is editable within two days of publishing Telegram channels fall into two types:
from us


Telegram برمجة تطبيقات الويندوز C# Programming
FROM American