تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الحادي عشر : الأنوع Value والأنواع Reference
#1
منقول من المنتدى القديم
كاتب المقال احمد جمال المشرف العام
تاريخ 28-02-08

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته .

لو عدنا مرة أخرى إلى درس انواع المتغيرات ، سنجد ان معظم انواع البيانات مشتقة من Value Type ، معنى ان هذه الأنواع مشتقة من Value Type ان كل متغير منها يمثل نفسه ، فلو افترضنا مثالاً بالشكل التالي :

C#:
كود :
int x=5;
int y=x;

y=18;

Console.WriteLine(x);
Console.WriteLine(y);

VB.net:

كود :
Dim x As Integer = 5
Dim y As Integer = x
y = 18
Console.WriteLine(x)
Console.WriteLine(y)


سنجد ان كلاً من x و y له قيمة خاصة به ، برغم اننا ساوينا بينهم في البداية ، السبب اننا في جملة y=x فهم الكومبايلر ان ينشأ متغير y يحصل على قيمة x .

نفس هذا النظام ينطبق على المتغيرات الاساسية ، على ال struct ايضاً ...

الأنواع من نوع Refernce Types مثل ال Class لا ينطبق عليها المثال ، لنفترض مثال السيارة بالشكل التالي :

C#:
كود :
class car
{
int carNumber;
string carName;
}
VB.net:
كود :
Class car
  
    Private carNumber As Integer
    
    Private carName As String
    
End Class

والآن سنكتب نفس المثال السابق مع ال ints ، سيكون المثال بالشكل التالي :

C#:

كود :
Car x = new Car();

x.carNumber=1;
Car y=x;

Console.WriteLine (x==y);

VB.net:

كود :
Dim x As New Car()
x.carNumber = 1
Dim y As Car = x
Console.WriteLine(x = y)

لو كنت تظن ان المتغير y يحتوي على نسخة من car يمكنك التعديل عليها فأنت مخطا ، إذ ان المتغير x و y يشيرون لنفس المتغير ، وبالتالي فأي تعديل في احدهما سيتسبب في تعديل للآخر ، يمكنك التأكد من ذلك من خلال كود مثل التالي :

C#:

كود :
Car x = newCar();
Car y = x;

x.carNumber=1;
y.carNumber =2;

Console.WriteLine (x.carNumber);
Console.ReadKey();

VB.net:
كود :
Dim x As Car = newCar()
Dim y As Car = x
x.carNumber = 1
y.carNumber = 2
Console.WriteLine(x.carNumber)
Console.ReadKey()

لعمل نسخة حقيقة من ال Class المسمى Car لا بد من تطبيق Clone ، قم بجعل Car Class يطبق ال Cloneaple Interface وقم بكتابة دالة ال Clone ، سنتعرف على هذه العملية في وقت لاحق ولكن حتى ذلك الحين يمكنك الاستفادة من هذا الرابط :
http://vb4arb.com/vb/showthread.php?731
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الأول : تحميل .net 2008 ومميزات استخدامه oneyemenweb2 1 669 07-03-13, 02:04 AM
آخر رد: abdoojh
  اعلان - انتهاء الدورة - الدرس التاسع والسبعون -) RaggiTech 0 598 14-10-12, 11:23 PM
آخر رد: RaggiTech
  الدرس الثامن والسبعون - Ajax RaggiTech 2 868 14-10-12, 11:22 PM
آخر رد: RaggiTech
  الدرس السابع والسبعون - ASP.net وقواعد البيانات RaggiTech 2 906 14-10-12, 11:19 PM
آخر رد: RaggiTech
  الدرس السادس والسبعون - ASP.net - الجزء الثالث RaggiTech 7 1,144 14-10-12, 11:14 PM
آخر رد: RaggiTech
  الدرس الخامس والسبعون - ASP.net - الجزء الثاني RaggiTech 5 1,310 14-10-12, 11:07 PM
آخر رد: RaggiTech
  الدرس الرابع والسبعون - ASP.net RaggiTech 6 1,084 14-10-12, 10:58 PM
آخر رد: RaggiTech
  الدرس الثالث والسبعون - مقدمة إلى تطوير المواقع RaggiTech 4 843 14-10-12, 10:44 PM
آخر رد: RaggiTech
  الدرس الثاني والسبعون - مقدمة إلى Mono RaggiTech 0 594 14-10-12, 10:37 PM
آخر رد: RaggiTech
  الدرس الواحد والسبعون - XML Commenting RaggiTech 2 793 14-10-12, 10:35 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم