العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

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

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


ال Structure او Structs هي انواع مخصصة من البيانات يمكنك انشاءها تستطيع حمل اي خصائص على شكل متغيرات او حتى دوال وخلافه ، ابسط مثال على Struct هو مثال السيارة ، لكل سيارة نجد موديل الصنع واسم الماركة ورقم اللوحة مثلاً ، يمكننا كتابة ال Struct بالشكل التالي مثلاً :

C#:
كود PHP:
struct Car
{
public 
int carNumber;
public 
int year;
public 
string factory;
}; 
VB.net:
كود PHP:
Structure Car 
    
    
    
Public carNumber As Integer 
    
    
Public year As Integer 
    
    
Public factory As String 
    
End Structure 
والآن عندما نريد تعريف نسخة من (سيارة) فإننا نقوم بتعيين خصائصها بالشكل التالي :

C#:
كود PHP:
Car ahmedcar = new Car();
ahmedcar.carNumber 1000;
ahmedcar.factory "Nissan";
ahmedcar.year 2007
VB.net:
كود PHP:
Dim ahmedcar As New Car() 
ahmedcar.carNumber 1000 
ahmedcar
.factory "Nissan" 
ahmedcar.year 2007 
يمكن ان يحتوي ال Struct على عنصر هو الآخر بدوره Struct ، لو افترضنا Struct لرخصة السير يحتوي على اسم المستخدم والسنوات المتبقية لانتهاء الرخصة مثلاً ، فسيكون ذلك بالشكل التالي :

C#:
كود PHP:
struct Licence
{
public 
string UserName;
public 
int yearsToFinish;

VB.net:
كود PHP:
Structure Licence 
    
    
    
Public UserName As String 
    
    
Public yearsToFinish As Integer 
    
End Structure 
والآن لو اردنا ان نجعل رخصة السير جزء من خصائص السيارة ، فسيتم ذلك بالشكل التالي :

C#:
كود PHP:
struct Car
{
public 
int carNumber;
public 
int year;
public 
string factory;
public 
Licence carLicence;
}; 
VB.net:
كود PHP:
Structure Car 
    
    
    
Public carNumber As Integer 
    
    
Public year As Integer 
    
    
Public factory As String 
    
    
Public carLicence As Licence 
    
End Structure 
ولتحديد خصائص اي سيارة سنكتب كود بالشكل التالي :

C#:
كود PHP:
Car ahmedcar = new Car();
ahmedcar.carNumber 1000;
ahmedcar.factory "Nissan";
ahmedcar.year 2007;
ahmedcar.carLicence.UserName "Ahmed Gamal";
ahmedcar.carLicence.yearsToFinish 3
VB.net
كود PHP:
Dim ahmedcar As New Car() 
ahmedcar.carNumber 1000 
ahmedcar
.factory "Nissan" 
ahmedcar.year 2007 
ahmedcar
.carLicence.UserName "Ahmed Gamal" 
ahmedcar.carLicence.yearsToFinish 

انشاء الدوال داخل ال Struct :


يمكننا في داخل اي Struct انشاء دالة لتقوم ببعض العمليات على هذا ال Struct ، ابسط مثال على ذلك لو اردنا عمل دالة renew لتجديد رخصة السير ، يمكن في هذه الحالة كتابة ال Struct بالشكل التالي :

C#:
كود PHP:
struct Licence
{
public 
string UserName;
public 
int yearsToFinish;
public 
void renew(int periode)
{
yearsToFinish += periode;
}

VB.net:
كود PHP:
Structure Licence 
    
    
    
Public UserName As String 
    
    
Public yearsToFinish As Integer 
    
    
Public Sub renew(ByVal periode As Integer
    
        
        
yearsToFinish += periode 
        
    End Sub 
    
End Structure 
وهكذا يمكننا تجديد فترة الرخصة عن طريق الوصول إلى هذه الدالة مباشرة .

في التطبيقات الفعلية في العادة لا يسمح لك بالوصول إلى العناصر مباشرة إلا عن طريق دالة وذلك لمنع ادخال بيانات مغلوطة مثلاً . يمكن عمل دالة Create لانشاء ال Struct مثلاً ، وبعد انشاء نسخة من ال Struct يتم استدعاء هذه الدالة لملئ البيانات حيث لن يسمح لك برؤية باقي المتغيرات .

هناك حل آخر باستخدام Constructor او المشيد ، حيث يمكنك وقت انشاء نسخة من ال Struct تمرير البيانات المطلوبة ، يتم كتابة المشيد بالشكل التالي :

C#:
كود PHP:
struct Car
{
private 
int carNumber;
private 
int year;
private 
string factory;
private 
Licence carLicence;
public 
Car(int p_carNumberint p_yearstring p_factory,Licence p_carLicence)
{
carNumber p_carNumber;
factory p_factory;
year p_year;
carLicence p_carLicence;
}
}; 
VB.net:
كود PHP:
Structure Car 
    
    
    
Private carNumber As Integer 
    
    
Private year As Integer 
    
    
Private factory As String 
    
    
Private carLicence As Licence 
    
    
Public Sub New(ByVal p_carNumber As IntegerByVal p_year As IntegerByVal p_factory As StringByVal p_carLicence As Licence
        
        
        
carNumber p_carNumber 
        
        factory 
p_factory 
        
        year 
p_year 
        
            
        carLicence 
p_carLicence 
    End Sub 
    
End Structure 
لاحظ اننا حولنا الوصول إلى المتغيرات ليكون private بحيث لا يمكن الوصول له خارج ال Struct ، معرفات الوصول ستكون احد مواضيعنا حينما ندخل في عالم ال OOP لذا لا تتعجل ولكن يكفي ان تعلم ان public تجعل قابلية الوصول من اي مكان إلى المتغير او الدالة ، اما private فلا يمكن الوصول لها إلا من داخل ال Struct .

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


توقيع : khaledbelal



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

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس 6: المصفوفات Arrays والتعامل معها وشرح التراكيب Structures khaledbelal دورة CSharp 2008 من منتدى فيجوال بيسك للعرب 1 10-29-2010 07:32 PM
الدرس التاسع : ال Enumeration دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-18-2010 04:27 PM
الدرس الثامن : المصفوفات .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-18-2010 04:01 PM
الدرس السابع : الدوال والطرق .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-17-2010 04:42 PM
الدرس الثاني : تقنيات جديدة مع .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-15-2010 03:37 AM

استضافة الحياة

الساعة الآن 08:01 PM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz