عرض مشاركة واحدة
  #1  
قديم 02-18-2010, 08:04 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الحادي عشر : الأنواع Value والأنواع Reference دورة .net 2008

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

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

C#:
كود PHP:
int x=5;
int y=x;
 
y=18;
 
Console.WriteLine(x);
Console.WriteLine(y); 
VB.net:
كود PHP:
Dim x As Integer 
Dim y 
As Integer 
18 
Console
.WriteLine(x
Console.WriteLine(y


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

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

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

C#:

كود PHP:
class car
{
int carNumber;
string carName;


VB.net:
كود PHP:
Class car 
  
    
Private carNumber As Integer 
    
    
Private carName As String 
    
End 
Class 
والآن سنكتب نفس المثال السابق مع ال ints ، سيكون المثال بالشكل التالي :

C#:
كود PHP:
Car x = new Car();

x.carNumber=1;
Car y=x;

Console.WriteLine (x==y); 
VB.net:
كود PHP:
Dim x As New Car() 
x.carNumber 
Dim y 
As Car 
Console
.WriteLine(y
لو كنت تظن ان المتغير y يحتوي على نسخة من car يمكنك التعديل عليها فأنت مخطا ، إذ ان المتغير x و y يشيرون لنفس المتغير ، وبالتالي فأي تعديل في احدهما سيتسبب في تعديل للآخر ، يمكنك التأكد من ذلك من خلال كود مثل التالي :

C#:
كود PHP:
Car x newCar();
Car y x;

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

Console.WriteLine (x.carNumber);
Console.ReadKey(); 
VB.net:
كود PHP:
Dim x As Car newCar() 
Dim y As Car 
x
.carNumber 
y
.carNumber 
Console
.WriteLine(x.carNumber
Console.ReadKey() 
لعمل نسخة حقيقة من ال Class المسمى Car لا بد من تطبيق Clone ، قم بجعل Car Class يطبق ال Cloneaple Interface وقم بكتابة دالة ال Clone ، سنتعرف على هذه العملية في وقت لاحق ولكن حتى ذلك الحين يمكنك الاستفادة من هذا الرابط :
http://vb4arab.com/vb/showthread.php?t=10209


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس