العودة   منتدى رياض الجنة - 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

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

الساعة الآن 07:59 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