تسجيل الدخول

مشاهدة النسخة كاملة : ما هي أنواع الأعضاء Members في لغة السي شارب #C


Şøķåŕą
10-30-2022, 04:15 PM
في هذا المقال، سنتحدث عن الأعضاء (Members) في لغة البرمجة (#C)، و عن الخصائص (properties) والحقول (fields) والأساليب (methods) والأحداث (events) والصياغات التعبيرية (Expression Statements).



ما هي أنواع الأعضاء members في لغة السي شارب


تعريف الأعضاء Members


أعضاء الفئة (class) إما أعضاء ثابتة (static members) أو تكون على شكل نموذج (instance members)، حيث ينتمي الأعضاء الثابتون إلى الفئات (classes)، وينتمي أعضاء النموذج إلى الكائنات (objects) في حالات من الفئات (instances of classes).



أنواع الأعضاء التي تحتوي عليها الفئات class members


الثوابت (Constants): هي القيم الثابتة المرتبطة بالفئة.


الحقول (Fields): المتغيرات المرتبطة بالفئة.


الأساليب أو الطرق (Methods): هي الإجراءات التي يمكن للفئة القيام بها.


الخصائص: هي الإجراءات المرتبطة بقراءة وكتابة خصائص فئة .


المفهرسات: هي الإجراءات المرتبطة بفهرسة الفئة مثل المصفوفة.


الأحداث (Events): هي الإشعارات التي تم إنشاؤها بواسطة الفئة.


عوامل التشغيل (Operators): هي عمليات التحويل والتعبير التي يدعمها الفئة.


المُنشئون (Constructors): هي الإجراءات المطلوبة لتهيئة أمثلة من الفئة أو الفئة نفسها.


المصممون النهائيون (Finalizers): هي الإجراءات (Actions) التي تم القيام بها قبل أن يتم التخلص منها بشكل دائم.


الأنواع (Types): هي الأنواع المتداخلة المعلنة بواسطة الفئة (class).


إمكانية الوصول المرتبطة


كل عضو في الفئة لديه إمكانية وصول مرتبطة، والتي تتحكم في مناطق نص البرنامج (program text) التي يمكنها الوصول إلى العضو (member)، ويوجد ستة أنواع منها وهي كالتالي:



العام (public): هو الوصول غير المحدود.


الخاص (private): هو الوصول المحدد فقط لهذه الفئة.


المحمي (protected): هو مقتصر فقط على هذه الفئة أو الفئات المشتقة من هذه الفئة.


الداخلي (internal): هو الوصول الذي ينتهي امتداد (exe. أو dll.).


الداخلي المحمي (protected internal): هو الوصول المحدد لهذه الفئة، أو الفئات المشتقة من هذه الفئة، أو الفئات داخل نفس التجميع (assembly).


المحمية الخاصة (private protected): هي الوصول المحدود لهذه الفئة أو الفئات المشتقة من هذا النوع داخل نفس التجميع.


ما المقصود بالحقول Fields


الحقل (field): هو متغير مرتبط بفئة أو نموذج الفئة، يُعرّف الحقل المُعرّف (static modifier) باستخدام حقل ثابت (static field) حيث يحدد الحقل الثابت موقع تخزين واحد ثابت، بغض النظر عن عدد مرات التي تم إنشاؤها في الفئة، فهناك نسخة واحدة فقط من حقل ثابت، كل نموذج يحتوي مثيل الفئة على نسخة منفصلة من جميع حقول نموذج من تلك الفئة.



مثال على الحقول fields


في المثال التالي يحتوي كل نموذج لفئة اللون على نسخة منفصلة من حقول نموذج ( R و G و B )، ولكن هناك نسخة واحدة فقط من الحقول الثابتة الأسود والأبيض والأحمر والأخضر والأزرق:



public class Color
{
public static readonly Color Black = new(0, 0, 0);
public static readonly Color White = new(255, 255, 255);
public static readonly Color Red = new(255, 0, 0);
public static readonly Color Green = new(0, 255, 0);
public static readonly Color Blue = new(0, 0, 255);

public byte R;
public byte G;
public byte B;

public Color(byte r, byte g, byte b)
{
R = r;
G = g;
B = b;
}
}



كما هو موضح في المثال السابق، قد تكون الحقول للقراءة فقط (read-only fields)، يمكن التخصيص إلى حقل للقراءة فقط (read-only fields) كجزء من مجال الإعلان للحقل أو في مُنشئ في نفس الفئة.



ما المقصود بالطرق Methods


الطرق (Methods): هي عضو ينفذ عملية الحسابية أو إجراء يمكن تنفيذه بواسطة كائن (object) أو فئة، يتم الوصول إلى الأساليب الثابتة من خلال الفئة (class)، ويتم الوصول إلى النموذج (Instance methods) من خلال الفئة.



قد تحتوي الطرق على قائمة من المعامِلات (parameters)، والتي تمثل القيم أو مراجع المتغيرات التي تم تمريرها إلى الطريقة (method)، الأساليب لها نوع إرجاع (return type)، والذي يحدد نوع القيمة المحسوبة والعودة بالطريقة.




يعد نوع إرجاع الطريقة باطلاً إذا لم يُرجع قيمة، قد تحتوي الطرق أيضًا على مجموعة من معامِلات النوع (type parameters)، والتي يجب تحديد وسيطات النوع لها عند استدعاء الطريقة، على عكس الأنواع، يمكن غالبًا الاستدلال على وسيطات النوع من وسيطات استدعاء الطريقة.



عندما يكون نص الطريقة (method body) عبارة عن تعبير واحد (single expression)، يمكن تعريف الطريقة باستخدام تنسيق التعبير المضغوط، كما هو موضح في المثال التالي:




public override string ToString() => “This is an object”;

ما المقصود بالمعامِلات Parameters


تُستخدم المعامِلات (Parameters) عبر القيم (values) أو المراجع المتغيرة (variable references) إلى الطرق، و تحصل معامِلات الأسلوب على قيمها الفعلية من الوسائط التي تم تحديدها عند استدعاء الطريقة (method)، هناك أربعة أنواع من المعامِلات:



معامِلات القيمة (value parameters).


المعامِلات المرجعية (reference parameters).


معامِلات المخرجات (output parameters).


مصفوفات المعامِلات (parameter arrays).


معامِلات القيمة Value parameter


يتم استخدام معامِلات القيمة (value parameter) لتمرير وسيطات الإدخال، حيث تتوافق معامِلات القيمة مع المتغير المحلي حيث يحصل على قيمته الأولية من الوسيطة التي تم تمريرها للمعامل، لا تؤثر التعديلات على معلمة القيمة على الوسيطة التي تم تمريرها للمعلمة، يمكن أن تكون معامِلات القيمة اختيارية، من خلال تحديد قيمة افتراضية بحيث يمكن حذف الوسائط المقابلة.



المعامِلات المرجعية Reference parameter


يتم استخدام المعامِلات المرجعية كمتغير ذا قيمة محددة أثناء تنفيذ الطريقة (method)، تمثل معامِلات المرجعية نفس موقع التخزين مثل متغير الوسيطة (argument variable)، يتم التصريح عن معامِلات المرجعية مع معدل المرجع، يوضح المثال التالي استخدام المعامِلات المرجعية:



static void Swap(ref int x, ref int y)
{
int temp = x;
x = y;
y = temp;
}


public static void SwapExample()
{
int i = 1, j = 2;
Swap(ref i, ref j);
Console.WriteLine($”{i} {j}”); // “2 1”
}

معامِلات المخرجات Output parameter
يتم استخدام معامِلات الإخراج (output parameter) لتمرير الوسائط حسب المرجع، إنه مشابه لمعامِلات المرجعية، إلا أنه لا يتطلب منك تعيين قيمة صريحة للوسيطة التي يوفرها المتصل (caller-provided argument)، يتم التصريح عن معامِلات الإخراج مع معدل الإخراج، يوضح المثال التالي استخدام معامِلات الإخراج:



static void Divide(int x, int y, out int result, out int remainder)
{
result = x / y;
remainder = x % y;
}


public static void OutUsage()
{
Divide(10, 3, out int res, out int rem);
Console.WriteLine($”{res} {rem}”); // “3 1”
}

مصفوفات المعامِلات Parameter arrays


تسمح مصفوفات المعامِلات (parameter arrays) بتمرير عدد متغير (variable number) من الوسائط إلى الطرق (method)، تم التصريح عن مصفوفات المعلمات المعلن عنها باستخدام معدِّل المعامِلات، فقط المعامِلة الأخيرة للطريقة يمكن أن تكون مصفوفة المعامِلات.



ويجب أن يكون نوع مصفوفة المعامِلات من نوع المصفوفة أحادية البعد، تعتبر أساليب الكتابة والكتابة للفئة (System.Console) أمثلة جيدة لاستخدام معامِلات المصفوفات مثال على ذلك:




public class Console
{
public static void Write(string fmt, params object[] args) { }
public static void WriteLine(string fmt, params object[] args) { }
// …
}

طريقة عمل مصفوفة المعامِلات (parameter arrays) تمامًا مثل معامل عادي لنوع مصفوفة، ومع ذلك في استدعاء الأسلوب مع مصفوفة المعامِلات، من الممكن وضع وسيطة واحدة من نوع مصفوفة المعامِلات أو أي عدد من الوسائط لنوع عنصر مصفوفة المعامِلات، في هذا المثال يتم إنشاء مثيل مصفوفة تلقائيًا وتهيئته باستخدام الوسائط المحددة:



int x, y, z;
x = 3;
y = 4;
z = 5;
Console.WriteLine(“x={0} y={1} z={2}”, x, y, z);

يعادل كتابة ما يلي:



int x = 3, y = 4, z = 5;

string s = “x={0} y={1} z={2}”;
object[] args = new object[3];
args[0] = x;
args[1] = y;
args[2] = z;
Console.WriteLine(s, args);

نور القمر
10-30-2022, 04:54 PM
طرح رائع
يعطيك الف عافيه
اتمنى لك مزيد من التميز والابداع
مودتي.

شيخة الزين
10-30-2022, 05:59 PM
طرح رائع
سلمت الايادي دوم التالق
تحياتي

نبضها مطيري
10-31-2022, 03:03 AM
طرح جميل
يعطيك العافيه

إِيزآبَيل♡
10-31-2022, 03:06 AM
اِخْتِيَار مُرْفَقٍ بفآئِدةَ تكُنوِلوُجِيةَ . .
كُلُّ اَلشُّكْرِ لِهَذَا اَلْإِمْتَاعِ . .
تَحِيَّتِي لِوهُجِ إُبدِآعَكّ . .

سمارا
10-31-2022, 11:34 AM
تسلم الأيادي على ما قدمت
ننتظر جديدك بكل شوق
تقبل مني أعطر التحايا

سمأأأأأرا

فرآشه ملآئكيه
11-01-2022, 07:43 AM
~`












جَمُيّـــلُ
سلمت الأكف
والله يعطيك العآفية ،
دمت بخير ~

نور القمر
11-01-2022, 09:37 PM
دَام عَطَائِكْ.. يَآطُهرْ..
وَلَا حَرَّمْنَا أَنْتَقَائِكْ الْمُمَيِّز وَالْمُخْتَلِف دَائِمَا
حَفِظَك الْلَّه مِن كُل مَكْرُوْه ..
تَحِيّه مُعَطَّرَه بِالْمِسْك*

خالد الشاعر
11-04-2022, 04:25 PM
موضوع رائع ومميز
طرحتى فابدعتى دمتى ودام عطائكِ
سلمتْ أناملكِ على الجلب المميز
اعذب التحايا لكى
خ ـالد الشاعر :x35:

نور القمر
11-05-2022, 09:14 PM
يعـطيك ربي العــافية على روعة الطرح
‏لا عـدمنا تميز انتقائك المميز للموضوعات
‏دُمْت ودام بحـر عطائك بما يطرح
‏بإنتظار القادم بشووق

‏همس
11-14-2022, 09:35 AM
آنتقاء مُكلل بِ الجمال
بِ آنتظار تألق آخر
لروحك عقد البيلسان

نور القمر
11-14-2022, 04:05 PM
إنتقاء ثري بالذائقه
سلمت ودام رقي ذوقك
بإنتظار القادم بشوق
كل الود لروحك

خاطري آضمـڪ
11-16-2022, 10:22 PM
جمال يعانق السماء كجمال الانتقاء
على الطرح الراقى
ابداع تميز تالق
يعطيك العافيه

رحيل
11-23-2022, 11:56 AM
شكرا للنشر الجميل
لروحك باقات النرجس











:rose:

رحيل
04-01-2023, 03:55 AM
شكرا لوافر العطاء

Şøķåŕą
09-18-2023, 12:27 PM
طرح رائع
يعطيك الف عافيه
اتمنى لك مزيد من التميز والابداع
مودتي.

واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود

Şøķåŕą
09-18-2023, 12:28 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود :572:

Şøķåŕą
09-18-2023, 12:28 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود

Şøķåŕą
09-18-2023, 12:28 PM
طرح رائع
سلمت الايادي دوم التالق
تحياتي

واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود

Şøķåŕą
09-18-2023, 12:28 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:em1:

Şøķåŕą
09-18-2023, 12:28 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود

Şøķåŕą
09-18-2023, 12:29 PM
طرح جميل
يعطيك العافيه

شكرا لك

Şøķåŕą
09-18-2023, 12:29 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود :126:

Şøķåŕą
09-18-2023, 12:29 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود :x42:

Şøķåŕą
09-18-2023, 12:30 PM
اِخْتِيَار مُرْفَقٍ بفآئِدةَ تكُنوِلوُجِيةَ . .
كُلُّ اَلشُّكْرِ لِهَذَا اَلْإِمْتَاعِ . .
تَحِيَّتِي لِوهُجِ إُبدِآعَكّ . .

شكرا لك

Şøķåŕą
09-18-2023, 12:30 PM
اِخْتِيَار مُرْفَقٍ بفآئِدةَ تكُنوِلوُجِيةَ . .
كُلُّ اَلشُّكْرِ لِهَذَا اَلْإِمْتَاعِ . .
تَحِيَّتِي لِوهُجِ إُبدِآعَكّ . .

نورتي

Şøķåŕą
09-18-2023, 12:30 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:r77:

Şøķåŕą
09-18-2023, 12:30 PM
تسلم الأيادي على ما قدمت
ننتظر جديدك بكل شوق
تقبل مني أعطر التحايا

سمأأأأأرا


شكرا لك

Şøķåŕą
09-18-2023, 12:31 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:x11:

بنت العز
09-18-2023, 12:32 PM
شكراً لك

Şøķåŕą
09-18-2023, 12:39 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:85:

Şøķåŕą
09-18-2023, 12:39 PM
شكراً لك

شكرا لك

Şøķåŕą
09-18-2023, 12:39 PM
~`












جَمُيّـــلُ
سلمت الأكف
والله يعطيك العآفية ،
دمت بخير ~

واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود

Şøķåŕą
09-18-2023, 12:39 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود :em10:

Şøķåŕą
09-18-2023, 12:40 PM
دَام عَطَائِكْ.. يَآطُهرْ..
وَلَا حَرَّمْنَا أَنْتَقَائِكْ الْمُمَيِّز وَالْمُخْتَلِف دَائِمَا
حَفِظَك الْلَّه مِن كُل مَكْرُوْه ..
تَحِيّه مُعَطَّرَه بِالْمِسْك*

شكرا لك

Şøķåŕą
09-18-2023, 12:40 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:x22:

Şøķåŕą
09-18-2023, 12:40 PM
موضوع رائع ومميز
طرحتى فابدعتى دمتى ودام عطائكِ
سلمتْ أناملكِ على الجلب المميز
اعذب التحايا لكى
خ ـالد الشاعر :x35:

شكرا لك

Şøķåŕą
09-18-2023, 12:40 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:w1:

Şøķåŕą
09-18-2023, 12:41 PM
يعـطيك ربي العــافية على روعة الطرح
‏لا عـدمنا تميز انتقائك المميز للموضوعات
‏دُمْت ودام بحـر عطائك بما يطرح
‏بإنتظار القادم بشووق

شكرا لك

Şøķåŕą
09-18-2023, 12:41 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:em21:

Şøķåŕą
09-18-2023, 12:41 PM
آنتقاء مُكلل بِ الجمال
بِ آنتظار تألق آخر
لروحك عقد البيلسان

شكرا لك

Şøķåŕą
09-18-2023, 12:41 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:rose:

Şøķåŕą
09-18-2023, 12:42 PM
إنتقاء ثري بالذائقه
سلمت ودام رقي ذوقك
بإنتظار القادم بشوق
كل الود لروحك







شكرا لك

Şøķåŕą
09-18-2023, 12:42 PM
جمال يعانق السماء كجمال الانتقاء
على الطرح الراقى
ابداع تميز تالق
يعطيك العافيه

شكرا لك

Şøķåŕą
09-18-2023, 12:42 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:em21:

Şøķåŕą
09-18-2023, 12:43 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود :114:

Şøķåŕą
09-18-2023, 12:43 PM
شكرا للنشر الجميل
لروحك باقات النرجس











:rose:

شكرا لك

Şøķåŕą
09-18-2023, 12:43 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:231:

Şøķåŕą
09-18-2023, 12:43 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود
:ah2:

Şøķåŕą
09-18-2023, 12:44 PM
شكرا لوافر العطاء

شكرا لك

Şøķåŕą
09-18-2023, 12:44 PM
واسعدني تواجدك
واطلالتك المشرقة
تعطر ركني
لروحك جنائن الياسمين
مع كل الود

نور القمر
02-05-2024, 02:35 PM
تسسسلم الايـآدي على روعه طرحك
الله يعطيك الف عافيه يـآرب
بانتظـآر جــديدك القــآدم
آحتـرآمي لك

إيلين
02-18-2024, 01:14 PM
-





:241:


موضوع مميز وجميل
مِنْ هنآ أقدمٌ لك بآقة وردْ ومحبة خآلصة لله تعآلىٌ
وَدوٍمآ نترٍقبٌ آلمَزٍيدْ
ودٍيٌ قبْلٌ رٍدْيٌ وسَلآإميٌ

حاء
10-06-2024, 06:02 AM
_

ابدعت وسلمت ذائفتك المترفه
ودام ابداعك المبهر ض2.,

Şøķåŕą
12-23-2024, 09:11 PM
شكراً لك
بإنتظار الجديد القادم
دمت بكل خير

مثلي قليل
01-03-2025, 09:54 PM
يسلمو على الطرح المميز
يسعدك ربي ض2

Şøķåŕą
01-05-2025, 10:24 PM
شكراً لك
بإنتظار الجديد القادم
دمت بكل خير