❥͢ ❈↡< C# > برمجة


Гео и язык канала: не указан, не указан
Категория: не указана


صل •اللّـہ̣ وسلم على سيدنا محمد🦋
قناة لنشر الاسئلة والحلول للبرمجة بلغة #C
•┈┈┈•❈••✦✾✦••❈•┈┈
تم انشاء القناة:
2019/11/6 . 8:30 م
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
مكتبة لغات البرمجة. @language_barmaja
•┈┈┈•❈••✦✾✦••❈•┈┈

Связанные каналы

Гео и язык канала
не указан, не указан
Категория
не указана
Статистика
Фильтр публикаций


#رســالة 👆🏻 من احد اعضاء قنواتنا ..♥️

•┈┈┈•❈••✦✾✦••❈•┈┈┈•

هالرسالة بصراحة تعيد لي كل معاني الأمل...لما اقرر الأنعزل عن التليجرام من غير التفكير بأي شئ...!

انا احاول جاهداً ان اكون عـون لكم جميعاً بعد الـله .

اشكركم من الاعماق على كل كلمة لطيفة وجدتها من اعضاء قنواتنا...
لكم مني كـل الود والاحـترام..♥️


إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

مثال بسيط يوضح مفهوم الدوال الوهمية Virtual :-

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace CSharp
{
class Human
{
virtual public void job()
{
Console.Write("I work, ");
}
}
class Teacher : Human
{
public override void job()
{
base.job();
Console.WriteLine("I am a teacher");
}
}

class Employee : Human
{
public override void job()
{
//base.job;
Console.WriteLine("I am an employee");
}
}
class Engineer : Human
{
new public void job()
{
Console.WriteLine("I am an engineer");
}
}

class Program
{
static void Main(string[] args)
{
Human Wasam = new Teacher();
Human Ali = new Employee();
Engineer Hamza = new Engineer();
Wasam.job();
Ali.job();
Hamza.job();
Console.ReadKey();
}
}
}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


إ₰...Output....₰❥

I work, I am a teacher
I am an employee
I am an engineer




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#الفئات_المجردة abstract

الفئات المجردة لا يمكن استنساخ كائنات منها
لكن يبقى لك حرية استنساخ كائنات من فئات وارثة منها فلهذه الفئات إمكانية الوراثة...

#الفئات_المغلقة sealed

عكس الفئات المجردة تماما فهي فئات لا يمكن الوراثة منها مطلقا...

#الوظائف_الوهمية virtual Methods

لجعل طريقة ما وهمية استخدم الكلمة virtual عند التصريح عنها.
وللتعديل عليها في الفئات الوارثة استخدم إحدى الكلمتين new أو override.
وللنفوذ لطرق الفئة الرئيسية يمكن استخدام الكلمة base.
فكما أن الكلمة this تمثل الفئة الحالية، فإن الكلمة base تمثل الفئة الرئيسية.


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#تعدد_الأشكال Polymorphisme

يشابه هذا المفهوم تعدد التعريف كثيرا
ويعطينا إمكانية التعامل مع الفئات المتوارثة كما لو أنها واحدة..

وهنا كود يوضح هذا المفهوم 👇🏻

class Human
{
public Human()
{
//Codes
}
public void AddFriend()
{
//Codes
}
}

class Teatcher : Human
{
// Codes
}

class Program
{
static void Work(Human O)
{
O.AddFriend();
}
static void Main(string[] args)
{
Teacher Wasam= new Teacher();
Work(Wasam);
}
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•

نلاحظ أننا أرسلنا الكائن كوسيط لإجراء Work
ووفق هذا المفهوم فبإمكانك تمرير أي فئة مشتقة من الفئة الرئيسية Human كوسيط.




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

مثال بسيط يوضح مفهوم الوراثة :-

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace CSharp
{
class Human
{
string ONAME;
int OAGE;
public
void Initialize(string Name, int Age)
{
ONAME = Name;
OAGE = Age;
}
public
void ShowDitails()
{
Console.WriteLine("Name = {0}, Age = {1}", ONAME, OAGE);
}
}

class Teacher : Human
{
string OSchool, OTeachLevel;
public
Teacher(string School, string TeachLevel)
{
//This is Constructor!
OSchool = School;
OTeachLevel = TeachLevel;
}
public
void Teach()
{
}
public
void MakeTest()
{
}
}

class Employee : Human
{
string OInstitution, OStudyLevel;
public
Employee(string Institution, string StudyLevel)
{
//This is Constructor!
OInstitution = Institution;
OStudyLevel = StudyLevel;
}
public
void Work()
{
}
public
void Bribe()
{
}
public
void GetPromoted()
{
}
}

class Engineer : Human
{
string OCompany, OSpecialty;
public
Engineer()
{
}
public
Engineer(string Company, string Specialty)
{
//This is Constructor!
OCompany = Company;
OSpecialty = Specialty;
}

public
void Work()
{
}
}

class Program
{
static void Main(string[] args)
{
string Name = "wasam";
int Age = 20;
string Company = "None";
string Speciality = "IT";
Engineer O = new Engineer(Company, Speciality);
O.Initialize(Name, Age);
O.ShowDitails();
O.Work();
Console.ReadKey();
}
}
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


إ₰...Output....₰❥

Name = wasam, Age = 20




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#الـــوراثــة Inheritance :

يختصر مفهوم مبدأ الوراثة كتابة الأكواد الكثيرة
فيكفي كتابة أكواد الفئةالاساسية
ومنها نورث أكوادها للفئات الأبناء.

لتوريث فئة لفئة أخرى نستخدم الرمز ":" للربط بين الفئة الوارثة والفئة الموروث منها,حيث تكون الوارثة في البداية.

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥


#التابع_البناء Constructor

هو أسلوب برمجي يقوم بإعطاء القيم الابتدائية لعناصر فئة ما
وله نفس اسمها
وهو لا يعد إجراءا ولا تابعا، ولكنه أشبه ما يكون لهما، فهو يستقبل قيما لذلك فهو يشبه الطرق
لكنه لا يعيد قيمة لذلك ليس تابعا
ولا يعرف باستخدام void لذلك ليس إجراًءا أيضا.
class O
{
string name ;
int age ;
puplic O (string name , int age )
{
ONAME = Name;
OAGE = Age;
}
public void ShowDitails()
{
Console.WriteLine ("Name = {0}, Age = {1}",
ONAME,
OAGE );
}

}
كود البرنامج :
int age = 20;
string Name = "O";
O ob = new O(Name, age);
// استنساخ الفئة
ob.ShowDitails();


•┈┈┈•❈••✦✾✦••❈•┈┈┈•

#التابع_الهدم Destructor

هو نظير لتابع البناء من حيث المبدأ
إلا أنه ينفذ عند فناء الكائن.
لذلك فعندما ترغب بتنفيذ أكواد معينة عند فناء الكائن كالخروج من البرنامج
فضعها في التابع الهدام.
~O()
{

}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#الخصائص Properties

قد تحتاج للوصول لبعض متغيرات فئاتك وكائناتها...
ويمكن ذلك من خلال استخدام مفهوم الخصائص المتمثل بـ setter وgetter.

Public type name
{
set { return متغير};
get { this.المتغير = value};
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•

تستخدم الكلمة this في #C للدلالة على الفئة الحالية
فقد يكون لدينا متغيرات عامة تحمل ذات الاسم في أكثر من فئة
وحتى لا تخلط علينا الأمور بإمكاننا كتابة اسم المتغير بعد هذه الكلمة لنحصل على متغير هذه الفئة.




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#مــجـال_الــرؤيـة :-

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

1⃣ public
وهو أشمل أنواع التعريف
وفيه تكون الكائنات معرفة في كافة فئات البرنامج.

2⃣ private
وهو التعريف الافتراضي
حيث الكائنات معروفة فقط على مستوى الوحدة البرمجية التي تنتمي إليها.


3⃣ protected
الكائنات معرفة على مستوى الفئات التي تنتمي إليها والفئات التي ترثها.


4⃣ internal
الكائنات معرفة على مستوى ملف التجميع assembly فقط.


5⃣ static
لهذه الكلمة دور هام في مجال رؤية الطرق والمتغيرات
فالمتغير المعرف بنوع ما ومسبوق بالكلمة static يمكن رؤيته في جميع أجزاء البرنامج والتي تحمل هذه الكلمة بالإضافة لاستخدامه مباشرة دون استنساخ الكائن الحاوي عليه.

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•




إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#مجالات_الأسماء Namespaces :-

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

*لإنشاء مجال اسماء اكتب الكلمة namespace ثم اسم مجال الأسماء
تليها فئاتها محاطة بإشارتي { }
تحددان بداية ونهاية مجال الأسماء هذا.

*ولاستخدام مجال الأسماء الذي أنشأته في مجال أسماء آخر عليك تضمينه في بداية البرنامج بالكلمة using .

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•




إ₰...Output....₰❥
Опрос
  •   10
  •   20
  •   15
16 голосов

Показано 20 последних публикаций.

251

подписчиков
Статистика канала