02-18-2010, 08:04 PM
|
|
مبرمج المنتدى الادارة تكليف لا تشريف
|
|
تاريخ التسجيل: 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 = 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#:
كود 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 = 1
Dim y As Car = x
Console.WriteLine(x = 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
x.carNumber = 1
y.carNumber = 2
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}). سورة الأعراف.
|
|