❥͢ ❈↡< C# > برمجة
271 subscribers
12 photos
23 links
صل اللَّـه وسلم على سيدنا ونبينا محمد ﷺ‏

قناة لنشر الاسئلة والحلول للبرمجة بلغة #C

•┈┈┈•❈••✾••❈•┈┈┈•
تم انشاء القناة: 2019/11/6 . 8:30 م
•┈┈┈•❈••✾••❈•┈┈┈•

مكتبة لغات البرمجة. @language_barmaja
Download Telegram
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#الخصائص Properties

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

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

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

تستخدم الكلمة this في #C للدلالة على الفئة الحالية
فقد يكون لدينا متغيرات عامة تحمل ذات الاسم في أكثر من فئة
وحتى لا تخلط علينا الأمور بإمكاننا كتابة اسم المتغير بعد هذه الكلمة لنحصل على متغير هذه الفئة.
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻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
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

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

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

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

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻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
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻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 كوسيط.
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

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

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

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

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

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

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


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻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
السلام عليكم
هل تعرف ما هي تقنية Entity Framwork في الـ #C ...؟
وهل سبق أن استخدمتها في أحد مشاريعك بلغة #C ...؟ هذا ما سنتحدث عنه بعد اسطتلاع أراءكم ..
Anonymous Poll
20%
Yes
80%
No
إ₰...👨🏻‍💻معلومات👩🏻‍💻...₰❥

مقدمة للتعرف على Entity Framework



نتحدث اليوم عن تقنية Entity Framework
وهي تقنية حديثة موجهه للتعامل مع قواعد البيانات في بيئة الـ Visual Studio و العديد من البيئات الحديثة التي تدعم تطبيقات قواعد البيانات .
فإذا كنت من المهتمين في برمجة تطبيقات قواعد البيانات فأنصحك بمتابعة هذه المقالة و التعرف على الـ Entity Framewrok .


يعد أطار العمل Entity Framework إحدى الطرق المضمنه في تقنية ADO.NET و التي تسمح بالتعامل مع البيانات في الوضع المنفصل Data Adapter ، فهذه التقنية هي شبيهه بالـ Dataset .

و من خلال الـ Entity Framework لم نعد مرغمين على استخدام الـ Dataset حكراً ، فقد اصبح باليد اليوم الاختيار بين عدة تقنيات منها :
- Dataset ,
- Entity Framework ,
- LINQtoSQL ,
وغيرها من التقنيات التي تظهر يوما بعد يوم . ومن منطلق المعرفة و حب الاطلاع و التعلم ، يتوجب علينا التعرف على هذه التقنية .
👇🏻👇🏻👇🏻👇🏻



•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻information👩🏻‍💻...₰❥

تقنية الـ Entity Framework

تقوم هذه التقنية بتغليف جداول قاعدة البيانات بفئات. Class تتضمن طرق Function وخصائص properties تمثل كائنات قاعدة البيانات Table.

بمعنى لو كان لديك جدول بالإسم Persons و فيه الحقول التـاليه :
Person_ID,
First_Name,
Last_Name,…etc

فإن هذه التقنية ستقوم بتوليد فئة Class بالإسم Persons يحتوي على Column بنفس اسم Column الموجودة في جدول الـ Persons الذي في قاعدة البيانات.

بإختصار .. ، تقوم هذه التقنية بإنشاء نموذج Model لكائنات قاعدة البيانات ، موفرة عليك بذلك الكثير من الجهد و الكثير من الاسطر البرمجية .. 👍🏻

🌹😊🌹


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻information👩🏻‍💻...₰❥


مرفق إليكم شرح بسيط " بالصور " عن طريقة إنشاء نسخة من Entity Framework للتعامل مع قواعد البيانات في الـ #C
👇🏻👇🏻👇🏻

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