الاثنين، 30 ديسمبر 2013

برمجة متقدمة سي شارب الخصائص C# - Properties

 الخصائص C# - Properties

برمجة متقدمة سي شارب الخصائص C# - Properties

برمجة متقدمة سي شارب الخصائص C# - Properties



ماهي  الخصائص في السي شارب Properties ؟

الخصائص هي مكون من مكونات الفئة أو بما تعرف بأعضاء الفئة Class Members وكذلك للمشيدات والمتغيرات والتراكيب والمجاميع المرقمة والدوال فهي أيضا من أعضاء الفئة.
الخصائص تسمى أيضا باللواحق الحقول أو امتدادات الحقول. فالخصائص أما أن تحتوي على خاصية القراءة باستخدام الكلمة المحجوزة get أو تحتوي الخصائص على خاصية الكتابة باستخدام الكلمة المحجوزة set. أو تحتوي الخصائص على الخاصتين معا القراءة get أو الكتابة set .حسب تعريف المستخدم للخصائص وحاجته اليها.فالخصائص لا تسمى مكان الذاكرة مثل المتغيرات فالخصائص تقوم فقط بالوصول للمتغير أما للقراءة او الكتابة.

ما الغرض من استخدام الخصائص ؟

إذا كانت الخصائص فقط تقوم بالوصول للمتغير دزن تعريفه وحجز له مكان للذاكرة والوصول للقراءة والكتابة لقيم المتغيرات فكذلك تفعل المتغيرات فما هو الهدف من استخدام الخصائص. تستخدم الخصائص لاخفاء المتغيرات فالمعلوم لدينا بأن المتغيرات يمكن منع المستخدم من الوصول اليها عن طريق تعريف محدد الوصول من نوع خاص أو محمي ولكن نريد من المستخدم أيضا الكتابة أو القراءة  على المتغير. فكيف يمكن جعل المستخدم يصل للمتغير المحمي بمحدد وصول يتم ذلك عن طريق استخدام وسيط بحيث هذا الوسيط يمكنه التعامل مع المتغيرات المحمية بمحددة الوصول ويمكن المستخدم الوصول للخصائص ويتم ذلك عن طريق تعريف الخصائص.
وتعرف الخصائص باسم الموصلات Accessors فالخصائص توصل القيم للكتابة للمتغيرات أو القراءة من المتغيرات.


الصيغة العامة لتعريف الخصائص في السي شارب.

في الكود التي نعرف الخصائص بالصيغة المركبة أي القراءة والكتابة معا. ويجب أن لا ننسى أن نعرف نوع البيانات للخصائص فيجب أن يكون من نفس نوع بيانات المتغيرات المراد الوصول اليه.


// خاصية من نوع سلسلة نصية لمتغير الكود
public string Code
{
   get
   {
      return code;
   }
   set
   {
      code = value;
   }
}

// خاصية نصية لمتغير الاسم
public string Name
{
   get
   {
     return name;
   }
   set
   {
     name = value;
   }
}

// خاصية لعدد صحيح لمتغير العمر
public int Age
{ 
   get
   {
      return age;
   }
   set
   {
      age = value;
   }
}


مثال كامل على استخدام الخصائص:-

في المثال التالي نستخدم خاصية للوصول لكود الطالب واسمه وعمره بحيث نكتب ونقراء البيانات المتغير.

using System;
namespace tutorialspoint
{
   class Student
   {

      private string code = "N.A";
      private string name = "not known";
      private int age = 0;

      // خاصية نصية للكود:
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // خاصية نصية للاسم:
      public string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }

      // خاصية نصية للعمر:
      public int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      public override string ToString()
      {
         return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
      }
    }
    class ExampleDemo
    {
      public static void Main()
      {
         // انشاء كائن للطالب:
         Student s = new Student();
            
         // اسناد قيم أي كتابة للمتغيرات عبر الخصائص
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info: {0}", s);
         //let us increase age
         s.Age += 1;
         Console.WriteLine("Student Info: {0}", s);
         Console.ReadKey();
       }
   }
}


Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10

الخصائص المجردة

الخصائص المجردة هي خصائص يتم تعريفها في الفئات المجردة التي لا تحتوي أي أكود فقط أسماء أو هيكل أو الإطار للفئات وأعضائها.الخصائص المجردة تحتوي على خاصتي الكتابة والقراءة دون تحديد ممن تقراء أو تكتب.



sing System;
namespace tutorialspoint
{
   public abstract class Person
   {
      public abstract string Name
      {
         get;
         set;
      }
      public abstract int Age
      {
         get;
         set;
      }
   }
   class Student : Person
   {

      private string code = "N.A";
      private string name = "N.A";
      private int age = 0;

      // Declare a Code property of type string:
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // Declare a Name property of type string:
      public override string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }

      // Declare a Age property of type int:
      public override int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      public override string ToString()
      {
         return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
      }
   }
   class ExampleDemo
   {
      public static void Main()
      {
         // Create a new Student object:
         Student s = new Student();
            
         // Setting code, name and the age of the student
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info:- {0}", s);
         //let us increase age
         s.Age += 1;
         Console.WriteLine("Student Info:- {0}", s);
         Console.ReadKey();
       }
   }
}

ناتج الخصائص المجردة.

Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10





Ahmed Ata Almahallawi
 Freelancer
IT
IT Help Desk,
SEO experience,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
DOB: 05/10/1984
by +Ahmed Almahallawi 
30/12/2013


التسميات: