(سجآده حمراء وأرائـك الهطول# حصريآت ال روآية عشق)  
 
 

العودة   منتدى رواية عشق > ϟ الأقسَــام التِقنيّـــة ϟ > ϟ تَطويـر المُنتديـات ϟ

ϟ تَطويـر المُنتديـات ϟ قِسم الهاكَات، والاستَايلات وإضافة مُنتديات وتقديم المُساعدات لِتطويرها .

 
 
أدوات الموضوع انواع عرض الموضوع
#1  
قديم 11-02-2022
Şøķåŕą متواجد حالياً
Egypt     Female
قَدَاسَة طُهِّرَ | | أَوْسِمَتِي | |
 
 عضويتي » 8
 اشراقتي ♡ » May 2017
 كُـنتَ هُـنا » منذ دقيقة واحدة (05:20 PM)
آبدآعاتي » 12,396,400
 تقييمآتي » 2508273
 حاليآ في » ☆بعالم الحب يا حب ❤️ ☆
دولتي الحبيبه » دولتي الحبيبه Egypt
جنسي  »  Female
 حالتي الآن »
آلعمر  » ❤
الحآلة آلآجتمآعية  » عزباء 😄
تم شكري »  1,661
شكرت » 1,647
مَزآجِي  »  1
мч ммѕ ~
MMS ~
 
Q85 ما هي الفئات Classes في لغة السي شارب #C



تدعم لغة (#C) مفاهيم الوراثة وتعدد الأشكال، يمكن للفئة (class) أن ترث مباشرة من فئة أصل واحدة، ويمكنها تنفيذ أي عدد من الواجهات، تتطلب الطرق التي تتجاوز الطرق الافتراضية في فئة (class) أصل الكلمة الأساسية (override keyword) للتجاوز كطريقة لتجنب إعادة التعريف، يوفر (#C) فئة (class) السجل وأنواع بنية السجل، وهي أنواع الغرض منها تخزين قيم البيانات بشكل أساسي.



ما هي الفئات Classes في السي شارب


الفئات والكائنات Classes and objects


الفئات (classes): هي الأكثر من نوع أساسي في لغة البرمجة (#C)، الفئة هي عبارة عن بنية بيانات تجمع بين الحالة (الحقول) والإجراءات (الطرق وأعضاء الوظائف الأخرى) في وحدة واحدة، والتي تُعرف أيضًا باسم الكائنات (objects)، تدعم الفئات الوراثة وتعدد الأشكال و من خلالها يمكن للفئات المشتقة توسيع الفئات الأساسية وتخصيصها، يتم إنشاء فئات جديدة باستخدام تعريفات الفئة (class declarations)، حيث يبدأ (class declarations) من العنوان المحدد مثل :



سمات ومعدلات الفئة (class).


اسم الفئة (class).


الفئة الأساسية (base class) عند التوريث من فئة أساسية.


الواجهات المطبقة من قبل الفئة (class).


العنوان يتبع محتوى الفئة (class body) والذي يتكون من قائمة بإعلانات الأعضاء (member declarations) مكتوبة بين المحددات { and }، يُظهر الكود التالي إعلانًا عن فئة بسيطة تسمى (E3arabi):



public class Earabi
{
public int X { get; }
public int Y { get; }

public Point(int x, int y) => (X, Y) = (x, y);
}




يتم إنشاء مثيلات الفئات (classes) باستخدام عامل التشغيل الجديد (new operator)، الذي يخصص نموذج جديد، ويستدعي مُنشئًا (constructor) لتهيئة النموذج ثم يعيد الإشارة إلى النموذج، تقوم العبارات التالية بإنشاء نقطتين لكائنين (objects) وتخزين المراجع لتلك الكائنات في متغيرين:



var p1 = new Point(0, 0);

var p2 = new Point(10, 20);



يتم استعادة الذاكرة التي يشغلها الكائن (objects) تلقائيًا عندما يتعذر الوصول إلى الكائن.



كتابة المعاملات Type parameters


المعامِلات: هي قائمة بأسماء نوع معامِلات (Type parameters) محاطة بأقواس زاوية، حيث نكتب المعامِلات التي تتبع اسم الفئة (class)، يمكن بعد ذلك استخدام معامِلات النوع في نص إعلانات الفئة لتحديد أعضاء (body) الفئة، في المثال التالي معامِلات نوع الزوج هي (TFirst وTSecond):



public class Pair<TFirst, TSecond>
{
public TFirst First { get; }
public TSecond Second { get; }

public Pair(TFirst first, TSecond second) =>
(First, Second) = (first, second);
}




يُطلق على نوع الفئة (class) الذي تم الإعلان عنه لأخذ معلمات النوع نوع فئة عام (generic class)، يمكن أيضًا أن تكون أنواع البنية والواجهة والنوع عامة، عند استخدام الفئة العامة، يجب توفير وسيطات النوع لكل معاملة من معامِلات النوع (type parameters) مثال على ذلك:



var pair = new Pair<int, string>(1, “two”);
int i = pair.First; //TFirst int
string s = pair.Second; //TSecond string




النوع العام (generic type) الذي يحتوي على وسيطات النوع المقدمة مثل: (Pair <int ، string>) يسمى بالنوع المركب (constructed type).



ما هي الفئات الأساسية Base classes


قد يحدد اسم الفئة وكتابة المعامِلات واسم الفئة الأساسية بنقطتين، ويتم حذف مواصفات الفئة الأساسية (base class) التخصيص هو بالضبط مثل الاشتقاق من نوع الكائن (object)، في المثال التالي يوضح الفئة الأساسية (base class) لـ (Point3D هي Point)من المثال الأول، حيث أن الفئة الأساسية لـ (Point) هي كائن (object):



public class Point3D : Point
{
public int Z { get; set; }

public Point3D(int x, int y, int z) : base(x, y)
{
Z = z;
}
}




الفئة (class) ترث أعضاء فئتها الأساسية (base class) حيث الوراثة يعني أن الطبقة تحتوي ضمنيًا على جميع أعضاء صنفها الأساسي، لا ترث الفئة النموذج والمنشئ الثابت (static constructors) والصيغة النهائية، يمكن للفئة المشتقة (derived class) إضافة أعضاء (members) جدد إلى هؤلاء الأعضاء الذين ترثهم، لكن لا يمكنها إزالة تعريف العضو الموروث، في المثال السابق (Point3D) يرث أعضاء (X و Y) من (Point)، ويحتوي كل عضو (Point3D) على ثلاث خصائص: (X و Y و Z).



يوجد تحويل ضمني من نوع فئة إلى أي من أنواع فئاته الأساسية، يمكن لمتغير من نوع فئة أن يشير إلى مثيل (instance) لتلك الفئة أو مثيل (instance) لأي فئة مشتقة، على سبيل المثال، بالنظر إلى إعلامِات الفئة (class) السابقة، يمكن لمتغير من النوع (Point) أن يشير إما إلى (Point أو Point3D) معاً، مثال على ذلك:




Point a = new(10, 20);
Point b = new Point3D(10, 20, 30);



ما هي الهياكل Structs


تحدد الهياكل أنواع الفئات التي تدعم الوراثة وتعدد الأشكال، وأيضاً تمكنك من إنشاء سلوكيات معقدة تعتمد على التسلسل الهرمي للفئات المشتقة، فإن أنواع الهياكل هي أنواع أبسط هدفها الأساسي هو تخزين قيم البيانات، لا يمكن للهياكل التصريح عن نوع الأساسي (base type)، وأيضاً أنها مشتقة ضمنيًا من (System.ValueType) و لا يمكنك اشتقاق أنواع الهياكل الأخرى من نوع نفس البنية، لانها بشكل ضمني محجوزة، مثال على ذلك:



public struct Point
{
public double X { get; }
public double Y { get; }

public Point(double x, double y) => (X, Y) = (x, y);
}



ما هي الواجهات Interfaces


يتم تحديد واجهه عقدًا (contract) يمكن تنفيذه بواسطة الفئات والهيكل، أنت تحدد واجهة للإعلان المشتركة بين أنواع مختلفة، على سبيل المثال :تحدد الواجهة (System.Collections.Generic.IEnumerable <T>)، طريقة استخدام جميع العناصر في مجموعة و استخدامها مثل المصفوفة.



يمكن أن تحتوي الواجهة على أساليب والخصائص وأحداث ومفهرسات، تحدد فقط الأعضاء التي يجب توفرهم على واجهه بواسطة الفئات أو الهياكل، التي من خلالهم تنفذ الواجهة، قد تستخدم الواجهات الوراثة متعددة، على سبيل المثال: ترث الواجهة (IComboBox) من كل من (ITextBox) و(IListBox).



interface IControl
{
void Paint();
}

interface ITextBox : IControl
{
void SetText(string text);
}

interface IListBox : IControl
{
void SetItems(string[] items);
}

interface IComboBox : ITextBox, IListBox { }



يمكن للفئات (Classes) والهيكل (structs) تنفيذ واجهات متعددة، في المثال التالي: طبق الفئة (EditBox) كلاً من (IControl) و(IDataBound):



interface IDataBound
{
void Bind(Binder b);
}

public class EditBox : IControl, IDataBound
{
public void Paint() { }
public void Bind(Binder b) { }
}



عند تنفيذ الفئة أو الهيكل أو واجهة معينة، من تلك الفئة أو الهيكلية يمكن تحويلها ضمنيًا إلى نوع الواجهة ذاتها:




EditBox editBox = new();
IControl control = editBox;
IDataBound dataBound = editBox;



ما المقصود بالتعداد Enums


التعداد هو من يحدد نوع المجموعة من القيم الثابتة، مثال على ذلك الثوابت التي تحدد مجموعة الخضروات الجذرية المختلفة:



public enum SomeRootVegetable
{
HorseRadish,
Radish,
Turnip
}



يمكنك أيضًا تحديد تعداد لاستخدامه معًا على هيئة الأعلام، وهذا أعلام التالي يعلن مجموعة من الأعلام للفصول الأربعة، يمكن تطبيق أي مجموعة من المواسم، بما في ذلك قيمة “الكل” التي تشمل جميع المواسم:




[Flags]
public enum Seasons
{
None = 0,
Summer = 1,
Autumn = 2,
Winter = 4,
Spring = 8,
All = Summer | Autumn | Winter | Spring
}



يوضح المثال التالي أعلامات كل من التعدادات السابقة:



var turnip = SomeRootVegetable.Turnip;

var spring = Seasons.Spring;
var startingOnEquinox = Seasons.Spring | Seasons.Autumn;
var theYear = Seasons.All;



تحدثنا في هذا المقال عن الفئات في لغة السي الشارب، وكيفية استخدامها وتصنيفها وعن الهياكل والتعداد والواجهات وأنواعها و الفئات الأساسية.



 توقيع : Şøķåŕą





شكرا على التهنئه الملكيه ..
مواضيع : Şøķåŕą


رد مع اقتباس
 

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

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

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
05 المتغيرات و أنوعها في لغة السي شارب نور القمر ϟ تَطويـر المُنتديـات ϟ 21 منذ 5 يوم 01:13 AM
05 المتغيرات و أنوعها في لغة السي شارب Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 31 منذ 4 أسابيع 03:08 AM
ما هي أنواع الأعضاء Members في لغة السي شارب #C Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 56 01-05-2025 10:24 PM
ما هي المكونات الهيكلية لبرنامج السي شارب #c Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 46 01-05-2025 10:24 PM


الساعة الآن 05:22 PM


Powered by vBulletin Hosting By R-ESHQ
HêĽм √ 3.1 BY: ! RESHQ ! © 2010
new notificatio by R-ESHQ
User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
تنويه : المشاركات المطروحة تعبر عن وجهة نظر أصحابها وليس بالضرورة تمثل رأي أدارة الموقع