Professional Documents
Culture Documents
مكتبة نور شرح السي شارب c sharp للمهندس دانتي ليو PDF
مكتبة نور شرح السي شارب c sharp للمهندس دانتي ليو PDF
اللهم إين أسيلك فهم النبوني ،و حفظ املرسلني ،و املالئكة املقربني ،اللهم اجعل
ألسنتنا عامرة بذكرك ،و قلوبنا بخشوتك ،وأرسارىا بطاعتك ،إىك عىل كل يشء
قدير ،حسبنا اهلل و ىعم الوكول
(*) : vc3إذا أردت إخف ػػاء المكتب ػػات الموج ػػودة ف ػػي قس ػػـ التصػ ػريحات أعم ػػى البرن ػػام (أعم ػػى
منطقة الكود) تكتب في بداية المكتبات السطريف المظمميف بالموف األحمر كما نشاىد.
في حالة الضغط عمػى عالمػة ال ازئػد كمػا فػي الصػورة التاليػة تجػد كافػة المكتبػات التػي تسػتخدميا
في البرنام .
(*) لعمػػؿ تحويػػؿ لممتغيػػرات وذلػػؾ لنسػػتطيع أف نجػػري عمػػييـ عمميػػات حسػػابية .مثػػؿ الطػػرح كمػػا
في المثاؿ التالي:
)static void Main(string[] args
{
//declaration part
;sbyte one
;sbyte two
;sbyte dif
;int x
//input part
;one = 50
;two = 20
//prossing part
;)dif = Convert.ToSByte (one - two
;x = one - two
//result part
)Console.WriteLine("the ok is {0}", x
}
5 »مبادئ السي شارب لألستاذ «دانيت ليو
ولػػـ sbyte لمػاذا اخترنػا.قمنػا بتحويػؿ المتغيػرات حتػى نسػػتطيع عمػؿ طػرح المتغيػرات مػػف بعضػيا
.# وذلؾ ألننا نريد استخداـ أرقاـ بسيطةint تختر
.(*) نفس المثاؿ السابؽ لكف المستخدـ يدخؿ األرقاـ بنفسو كما نشاىد
sbyte one;
sbyte two;
byte dif;
Console.WriteLine("input the first number");
one = Convert.ToSByte ( Console.ReadLine());
مػثالً وذلػؾ5.2 (*) في ىذا المثاؿ التالي يفضػؿ أف يػدخؿ المسػتخدـ رقػـ مػع عالمػة عشػرية مثػؿ
:double ألننا استخدمنا
double one, two, dif;
Console.WriteLine("the one value is {0} and two value is {1} the deference is
{2}", one, two, dif);
Console.WriteLine(universty);
Console.WriteLine("the one value is {0} and two value is {1} the deference is
{2}", one, two, dif);
}
6 مبادئ السي شارب لألستاذ «دانيت ليو»
}
;x3 = ++x1
;)Console.WriteLine(x3
;int x1 = 9 , x2 = 3 , x3
قاعدة ثابتة//موجب أو سالب قبؿ المتغير زيادة او نقصاف ،بعد المتغير ال زيادة وال نقصاف
;int var1, var2 = 6, var3 = 6
; var1 = var2++ * --var3
مثاؿ آخر:
;int x1 = 10, x2 = 3, x3 = 3
;x3 = x1++
مثاؿ آخر :لمزيد مف التخصيص عمى العمميات الحسابية قبؿ المتغير وبعد المتغير.
دائما حتى تتأكد مف اف العمميات تتـ بشكؿ صحيح.
استخدـ األقواس ً
;int total, salary = 1600, bounus = 5, tax = 5, rent = 10, living = 300
;)total = (salary + bounus) - (tax + rent + living
;)Console.WriteLine(total
فيديىvc4 part1
;)"Console.WriteLine("inter an integer
;))(int myint = Convert.ToInt32(Console.ReadLine
;)Console.WriteLine("integer less than 10? {0}", myint < 10
< Console.WriteLine("integer between 0 and 5 and ? {0}",(0 <= myint) &&(myint
;))5
;)Console.WriteLine("integer is even {0}", myint % 2 == 0
;goto you
you:
;)"Console.WriteLine("the next code
)myintوفػ ػػي حالػ ػػة عكػ ػػس ذلػ ػػؾ يضػ ػػع القيمػ ػػة . falseوتأكػ ػػدنا أف < تأكػ ػػدنا أف )10
( (myint < 5واذا كانت عكس ذلؾ يضع القيمة . false
وتجػد عنػد كتابػة ; go to youال ينفػذ البرنػام التعميمػة التػي أسػفؿ ; go to youثػـ يػذىب
البرنام إلى التعميمة you:وينفذ ما تحتيا .
int mysring;
Console.WriteLine("input value");
mysring = Convert.ToInt32(Console.ReadLine());
string res = (mysring < 10)? "mystring is less than 10" : "mystring is greater
than 10";
Console.WriteLine(res);
}
10 مبادئ السي شارب لألستاذ «دانيت ليو»
ولكػػف مػػف األفضػػؿ عمػػؿ نفػػس المثػػاؿ السػػابؽ بيػػذه الطريقػػة لضػػماف قػػوة الكػػود وىنػػا تظيػػر أىميػػة
.else
;int x = 7
;)"if (x == 5) Console.WriteLine("five
;)"else if (x == 6) Console.WriteLine("six
)else if (x == 7
{
;)"Console.WriteLine("seven
;)"Console.WriteLine("sept with francais
}
;)"else if (x == 8) Console.WriteLine("eight
;)"else Console.WriteLine("UnNoun
}
;))(a = Convert.ToInt32(Console.ReadLine
( )2شػػركة ايػػس ك ػريـ قامػػت بش ػراء ثالثػػة خطػػوط إنتاجيػػة نتػػاج أن ػواع جديػػدة مػػف األيػػس ك ػريـ ،
موظفوا الضرائب قاموا بزيارة الشركة في نياية السنة المالية وقاموا بحساب الضريبة كاآلتي:
-قيم ػػة األرب ػػاح ى ػػي عب ػػارة ع ػػف قيم ػػة المبيع ػػات مط ػػروح مني ػػا المص ػػاريؼ والت ػػي تش ػػمؿ ب ػػدورىا
مصارؼ تصنيعية ومصاريؼ نثرية.
01:06:43
%5 -ضريبة عمى المنت األوؿ
%3 -ضريبة عمى المنت الثاني
11 »مبادئ السي شارب لألستاذ «دانيت ليو
انًُرج األٔل//
ؼاخ نهًُرج األٔلًٛح انًثٛ قٙ اقشأ ئجًانُٙٔذؼ//
َٙانًُرج انصا//
Console.WriteLine("input L2 total s, ");
L2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("input m2 total H");
m2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("input t2 total T");
t2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("--------------------------------");
p3 = (L3) - (m3 + t3);
tax3 = (1.5 * p3) / 100;
Console.WriteLine("dareba to the third product ={0}", tax3);
Console.WriteLine("Arbah {0} tax3 {1}", p3, tax3);
Console.WriteLine("-----------------------------------");
totaltax = tax1 + tax2 + tax3;
Console.WriteLine("total tax is {0}", totaltax);
12 »مبادئ السي شارب لألستاذ «دانيت ليو
}
if ((tax3 > tax1) && (tax3 > tax2))
{
if (tax1 > tax2) Console.WriteLine("tax3, tax1, tax2");
else Console.WriteLine("tax3, tax2, tax1");
}
وطباعػػة فب اريػػر إف1 ) قػػـ بكتابػػة برنػػام يقػػوـ بقػراءة رقػػـ وطباعػػة ينػػاير حينمػػا تكػػوف قيمػػة الػػرقـ3(
وطباعػػة خػػارج الربػػع األوؿ مػػف العػػاـ ألي قيمػػة3 وطباعػػة مػػارس إف كانػػت قيمتػػو2 كانػػت قيمتػػو
ch4_3 أخرى
int x;
Console.WriteLine("type your number between 1 to 3 ");
x = Convert.ToInt32(Console.ReadLine());
switch (x)
{
case (1): Console.WriteLine("ganuary"); break;
case (2): Console.WriteLine("fep"); break;
case (3): Console.WriteLine("fep"); break;
13 »مبادئ السي شارب لألستاذ «دانيت ليو
default: Console.WriteLine("out of 1st year quarter"); break;
}
int i = 1;
do
{
Console.WriteLine("{0}. refaat", i);
i++;
========================================حَٛقح انصاٚانطش//
int i = 1;
while (i <= 10)
{
Console.WriteLine("{0}. refoooooooooo", i);
i++;
========================================قح انصانصحٚانطش//for
for (i = 1; i <= 10; i++)
{
Console.WriteLine("{0} refaat hamed", i);
}
14 مبادئ السي شارب لألستاذ «دانيت ليو»
//CH4_4----------------------------------------------------------------------
( )4قػػـ بكتابػػة برنػػام يقػ أر مجموعػػة مػػف األرقػػاـ تنتيػػي بػػالرقـ 9ثػػـ قػػـ بإيجػػاد عػػدد األرقػػاـ الزوجيػػة
ومجموع األرقاـ الفردية ch4_4
Ex
2456789
4 even no
21 odd sum
Evenتعني األرقاـ الزوجية ،و oddتعني األرقاـ الفردية.
الحؿ:
;int n
;int oddsum=0, evenno=0
do
{
;)"Console.WriteLine ("input numper
;))( n=Convert.ToInt32 (Console.ReadLine
;if(n%2==0) evenno=evenno +1
; else oddsum =oddsum +n
}
;)while (n!=9
;int re
;)"Console.WriteLine ("input
;))(re=Convert.ToInt32 (Console.ReadLine
)for (int i = re; i >= 1; i--
{
;f = f * i
}
;)Console.WriteLine("{0}", f
}
16 مبادئ السي شارب لألستاذ «دانيت ليو»
( )6بكتريػػا مزروعػػة فػػي وسػػط مختبػػر تتكػػاثر بطريقػػة االنقسػػاـ الخيطػػي بمقػػدار الضػػعؼ كػػؿ 30
ػباحا فكػػـ سػػيكوف عػػددىا بعػػد
ثانيػػة ،فػػإذا كػػاف عػػدد البكتريػػا المزروعػػة ىػػو 10عنػػد السػػاعة 8صػ ً
مرور ساعة ch4_6
الحؿ
* عممنا أف البكتريا تتكاثر بمقدار الضعؼ كػؿ 30ثانيػة ،أي أننػا لنعػرؼ مقػدار التكػاثر لمػدة
ساعة :فإف البكتيريا سوؼ تتكاثر في 60دقيقة 120مرة .ألنيا تتكاثر مرتيف في الدقيقة.
سوؼ نستخدـ حمقة for
الطريقة األولى :يصبح الكود كالتالي:
double ;pct = 10
}
;)Console.WriteLine("{0} ", pct
}
قمن ػػا باختي ػػار doubleحت ػػى نس ػػتطيع تخػ ػزيف ع ػػدد البكتري ػػا خ ػػالؿ س ػػاعة ( 60دقيق ػػة) وذل ػػؾ ألف
التكاثر كما عممنا يزيد بمقدار الضعؼ أي مرتيف في الدقيقة أي 120مرة في الساعة.
أيضا
الطريقة الثانية :نستطيع كتابة الكود بيذا الشكؿ ً
double ;pct = 10
}
;)Console.WriteLine("{0} ", pct
}
في ىذه المرة قمنا بتغير i<=60بدالً مف 20وضربنا البكتريا )4( × pctبدال مف 2
فتعطينا نفس النتيجة كما نرى في الصورة.
17 مبادئ السي شارب لألستاذ «دانيت ليو»
( )7فػي اسػػتراليا نظػاـ قػػروض المنػازؿ يعتمػػد عمػى تسػػديد دفعػة أوليػػة تسػاوي %5مػػف قيمػة المنػػزؿ
ازئػػد 20ألػػؼ دوالر كمعاممػػة ويػػتـ حسػػاب فائػػدة 5بػػاأللؼ لكػػؿ مائػػة ألػػؼ دوالر لمػػدة اؿ 12شػػير
األولى ثـ تستمر نفس نسػبة الفائػدة شػيرًيا لكػف مػع إمكانيػة البػدء بتسػديد مبػالت إضػافية تخصػـ مػف
عمما أف أسعار المنزؿ تتراوح بيف 300ألؼ ومميوف دوالر قـ بإيجاد اآلتي: سعر البيت األصمي ً
-1لو كاف بعد مضي الػ 12شير األولى قػاـ المشػتري بتسػديد مبمػت ثابػت شػيرًيا يزيػد عػف الفائػدة
فقط بعرض جدوؿ يتضمف عدد األشير التي يستمر التسديد فييا وحجـ الفائدة في كػؿ شػير وحجػـ
المبمت المخصوـ وحجـ المبمت المتبقي.
-2مػػع نيايػػة ىػػذا الجػػدوؿ قػػـ بعػػرض سػػعر البيػػت األصػػمي ومجمػػوع الفائػػدة الكمػػي وسػػعر البيػػت
ا جمالي بعد إضافة قيمة المعاممة ومجموع الفائدة إليو ch4_7
مثاؿ:
Home=300000
First pay = 5% = 15000
فموس معاممة File=20000
300000-15000= 285000
First 12 month 0.005 fayda in all 100,000 $
285000 * 0.005 fayda = 1425
1425 * 12 month = 17100 in the first year
في أوؿ سنة سوؼ تدفع فائدة 17100
أيضا عف كؿ شير
في السنة الثانية مطموب منؾ سداد فائدة ً 1425
فرضا لو دفعت زيادة عف 1425شيرًيا يبتدي يخصـ مف سعر البيت الذي ىو ()285000
ً
* مطموب منؾ سداد قيمة المنزؿ ( × )285000فائدة )1425( = %0.005
أي :ل ػػو س ػػددت 3000دوالر ف ػػي ش ػػير م ػػا :فس ػػوؼ ت ػػذىب 1575م ػػف س ػػعر البي ػػت و 1425
فائدة .أي أف1425 -1575 =3000 :
فيكوف باقي الحساب بعد نياية الشير األوؿ مف السنة األولى
283425 =1575 – 285000
* في الشػير الثػاني مطمػوب منػؾ سػداد قيمػة المنػزؿ ( × )283425فائػدة )1417( = %0.005
أي قيمة الفائدة قمت عف السابؽ.
18 »مبادئ السي شارب لألستاذ «دانيت ليو
:الحؿ كالتالي
{
static void Main(string[] args)
{
double price;// دٛ نهثٙغٛانغؼش انشئ
inputagine:
Console.WriteLine("input the price");
price = Convert.ToInt32(Console.ReadLine());
if ((price < 300000) || (price > 1000000)) goto inputagine;
precent = 0.05 * price;
int month=0;
double tprofit=0;
do
{
month ++;
p2=0.005 * priceAfter ;
tprofit += p2;//or- tprofit = tprofit + p2
Console.WriteLine("---------------------------------");
int a;
float b=6.0f;
a = checked((int)b);
Console.WriteLine(a);
Console.ReadKey();
# CH5_2 part1==========================
ushort x1;
char x2 = 'b';
x1 = x2;
Console.WriteLine("ushort ={0}", x1);
Console.WriteLine("char={0}", x2);
//===========================
ushort x3;
char x4 = 'B';
x3 = x4;
Console.WriteLine("ushort ={0}", x1);
Console.WriteLine("char={0}", x2);
//==================================
char x5;
int i;
# CH5_3 part1==========================
short shortResult, shortVal = 4;
int integerVal = 67;
long longResult;
float floatVal= 10.5F;
double doubleResult, doubleVal = 99.999;
string stringResult, stringVal = "17";
bool boolVal = true;
explicit وحتى يحتوي األصغر األكبر ال بد مف.implicit األكبر يمكف أف يحتوي األكبر
Float Double
#VC5Part2 CH5_4==========================
class Program
{
enum clothes
{
L = 1,
xL,
xxL,
xxxL = L+7
}
static void Main(string[] args)
{
clothes x ;
x =(clothes)2;
Console.WriteLine(x);
}
}
21 »مبادئ السي شارب لألستاذ «دانيت ليو
# VC5Part2 CH5_5==========================
)@ (يراجعstatic void Main(string[] args) (*) يكتب الكود في أعمى
enum orientation : byte
{
north = 1,
south = 2,
east = 3,
west = 4
}
{
byte directionByte;
string directionString;
أو1 وذلػؾ حتػى نحصػؿ عمػى قيمػةbyte مػف نػوعdirectionByte قمنا بتعريػؼ المتغيػر
myDirection عمى حسب تعريؼ. أو ثالثة أو اربعة2
. وفوائدىاstruct (*) نتحدث عف
class Program
{
struct student
{
public string name;
public int mark1,mark2,mark3;
public float averag;
student1.name = "ahmed";
student1.mark1 = 60;
student1.mark2 = 65;
student1.mark3 = 85;
حتػػىstruct لعناصػػر الػ ػpublic وال تنسػػى عمػػؿ.حتػػى تسػػتطيع ق ػراءة أحػػدىما مػػف اآلخػػر
. األخرىstruct تستطيع قراءتيا ضمف الػ
: شاىد المثاؿ والحظ ا ضافة. جديدstruct واليؾ نفس المثاؿ السابؽ مع إضافة
class Program
{
struct note
{
public string Birthday;
struct address
{
public int sector, streat, home;
}
struct student
{
public string name;
public int mark1,mark2,mark3;
public float averag;
student1.adres.nt.Birthday = "1397";
student1.name = "ahmed";
student1.mark1 = 60;
student1.mark2 = 65;
student1.mark3 = 85;
student1.adres.sector = 510;
student1.adres.home = 10;
student1.adres.streat = 30;
struct address
{
public int sector, streat, home;
}
struct student
{
public string name;
public int mark1,mark2,mark3;
public float averag;
student1.adres.nt.Birthday = "1397";
student1.name = "ahmed";
student1.mark1 = 60;
student1.mark2 = 65;
student1.mark3 = 85;
student1.adres.sector = 510;
student1.adres.home = 10;
student1.adres.streat = 30;
)//function (write
}
)static void Main(string[] args
{
طشٚقح اعرذػاؤِ//
;)(write
}
;int x1 = 5, x2 = 4, x3 = 3
;int y, f1 = 1, f2 = 1, f3 = 1
return (f);
}
:م انًصالٛ ئرا أسدَا أٌ َجًغ يجًٕػح أسقاو ػهٗ عثَُْٙا َكرة فاَكشٍ شا //
static int addition(int x1, int x2, int x3, int x4)
{
int sum;
sum = x1 + x2 + x3 + x4;
return (sum);
}
int y, x1 = 5, x2 = 4, x3 = 3;
Console.WriteLine(addition(10,20,30,40));
قمنا بالكتابة
.) ىي أكبر قيمة في األرقاـ التي تمت كتابتيا في الكونسؿ6( ألف رقـ6 سوؼ تجد النتيجة
//function 5 out
//function 5 out
;} int[] A = { 1, 8, 3, 6, 2, 5, 9, 3, 0, 2
←int Index; //
//ىن ػػا ل ػػو كتبن ػػا أف ى ػػذا المتغي ػػر يس ػػاوي أي قيم ػػة فم ػػف يمتف ػػت إليي ػػا البرن ػػام وس ػػوؼ ينف ػػذ قيم ػػة
Maxval
Console.WriteLine("The maximum value in myArray is {0}",MVi(A, out
;))Index
Console.WriteLine("The first occurrence of this value is at element
{0}",
;)Index + 1
}
28 »مبادئ السي شارب لألستاذ «دانيت ليو
{
Console.WriteLine("func write {0}", Program.x);
x = 18;
ٍ انفاَكشٙح فٕٛجذ ئكظ يحهٚ ح ألَّ الًٛ انؼانْٙ ُْا ذؼرثش ئكظ //
}
static void Main(string[] args)
{
int x = 5;
Program.x = 12;
Console.WriteLine("main1 Local {0}", x);
}
:وسوؼ تجد النتيجة التي تظير في شاشة الكونسوؿ كالتالي
# VC6Part1 CH6_7==========================01:00:45
class Program
{
static string mystring;
ونسػ ػ ػػتطيع اسػ ػ ػػتدعاىا بعػ ػ ػػد فػ ػ ػػتح قائمػ ػ ػػةdebug بعػ ػ ػػد ذلػ ػ ػػؾ نتحػ ػ ػػدث عػ ػ ػػف
: كما نرى في الصورةdebug ونختارproperties
}
}
}
30 »مبادئ السي شارب لألستاذ «دانيت ليو
public void set(string n1, int m1, int m2, int m3)
{
name = n1;
biomark = m1;
chmark = m2;
medmark = m3;
average = (biomark + chmark + medmark) / 3;
}
s1.print();
s2.print();
s3.print();
}
}
31 »مبادئ السي شارب لألستاذ «دانيت ليو
# VC6Part2 CH6_10==========================00:28:21
overloading رى انرؼايم يغ األٔفش نٕدَجٚ فٛذأيم ك
class Program
{
//overloading
static int add(int a, int b)
{return (a + b);}
string s1 = "maha";
string s2 = "ashraf";
}
}
32 »مبادئ السي شارب لألستاذ «دانيت ليو
# VC6Part2 CH6_11==========================00:42:42
. وأىميتوdelegate سوؼ نتكمـ عف التفويض
class Program
{
// ضٕٚانرف
}
}
33 »مبادئ السي شارب لألستاذ «دانيت ليو
class Program
{
static void Main(string[] args)
{
int ro = 1, x= 5;
Console.WriteLine(string.Format("factorial of 5 is {0}",ro));
Console.WriteLine("ok");
Debug.WriteLine("debug mood");
Trace.WriteLine ("trace mood");
}
int[] a = { 0, 1, 2 };
int w = 0;
try
{
ْزِ جًهح انخطأ //
//a[6] = 9;
Console.WriteLine(8 / w);
}
catch (System.IndexOutOfRangeException e)
{
Console.WriteLine("catch 1 is " + e.Message);
}
catch (System.DivideByZeroException e)
{
Console.WriteLine("catch 2 is " + e.Message);
}
finally
{
Console.WriteLine("there are an error");
}
}
exceptions ← deubg إذا أردت معرفة أنواع األخطاء فيمكنؾ ذلؾ مف
: كما في الصورةview Detail.. أو يمكنؾ مباشرة معرفة نوع الخطأ تختار
37 مبادئ السي شارب لألستاذ «دانيت ليو»
تمقائي ػػا أف MyCowلي ػػا EatFoodخػػاص بي ػػا .و myChickenلي ػػا EatFood
ً عػػرؼ
آخر.
مجموعات2- Collections://
Operator overloading:
ايضا مف خاللو اختصار الكود
ممكف ً
مثاؿ:
)if (cowA.Weight > cowB.Weight
{
...
}
ممكف بدالً مف ذلؾ اختصار الكود بيذا الشكؿ.
)if (cowA > cowB
{
...
}
01:23:00
39 »مبادئ السي شارب لألستاذ «دانيت ليو
newButton.Text = "newButton";
Controls.Add(newButton);
}
private void newButton_Click(object sender, EventArgs e)
{
((Button) sender).Text= "cllicked";
//newButton.Text = "clicked";
Modifier Meaning
none or internal Class accessible only from within the current
project .
abstract or internal abstract Class accessible only from within the current
project, and cannot be instantiated, only derived
from .
sealed or internal sealed Class accessible only from within the current
project, and cannot be derived from, only
instantiated .
interface skills { }
interface it : skill,skills { }
class im : it { }
--------------------------
class lion{}
class tiger { }
interface jungle{ }
interface desert { }
interface mountain { }
(القػػط البػػري) ويمكػػفwildcat ىػػو األب وال يمكػػف توريػػث أكثػػر مػػف أب لمكػػالسtiger أصػػبح
. كما شاىدناinterface توصيؿ أكثر مف
00:53:02
42 »مبادئ السي شارب لألستاذ «دانيت ليو
interface Mybaseinterface { }
public interface myBaseinterface2 {}
interface myinterface { }
class human
{
string s;
int age;
//consructor 1
public human ()
{
Console.WriteLine("you just initiate in inctance ");
}
//costructor 2
* a.s="mohamed";/ ظ تثهكٛش ئط نٛظٓش حشف اإلط فًؼُٗ رنك أٌ انًرغٚ ئرا نى
human b = new human("mohamed", 23);// غرقثمٚ ُْ٘ا تحس ػٍ انكَٕغرشكرش انز
ئطْٙ 1 ْٕ انغٍ ٔئط1ًٍرٓى ألٌ انغٍٛ ٔٔجذِ فطثغ قًٛرٛق
//b.s = "refoo";
//b.age = 29;
//Console.WriteLine("name is {0}, age {1}",a.s,a.age);
//Console.WriteLine("name is {0}, age {1}", b.s, b.age);
43 مبادئ السي شارب لألستاذ «دانيت ليو»
نتحػػدث عػػف نقطػػة ميمػػة وىػػي incapsulationأي التغميػػؼ واليػػدؼ منيػػا الحفػػاظ عمػػى أمنيػػة
Mainالخػػاص بالبرنػػام .فنضػػع األوبجكػػتس فػػي البيانػػات حتػػى ال نضػػع األوبجكػػتس فػػي الػ ػ
الكالس حتى تصبح مغمفة ويعطيني ذلؾ حماية أكثر لمبرنام .
كم ػػا نس ػػتطيع عم ػػؿ overloadingوتعن ػػي عم ػػؿ أكث ػػر م ػػف ( construtorبن ػػاء تش ػػييد) ل ػػنفس
الكالس.
اآلف نريد تطوير البرنام أكثر كما سوؼ نرى:
class Program
{
ال تذ أٌ ٚكٌٕ انكالط األب ْٕٛيٍ تاتهك public class student : human//
{
;int id
//يجًٕع عثغ يٕاد دساعٛح يصالً ;int sum
} { )(public student
public student(string s2 , int age , int id1, int sum1) :
)base(s2,age
{
;id = id1
;sum = sum1
Console.WriteLine("name is {0} , age is {1} student id is {2},
;)sumation is {3} ", s2, age, id1, sum1
}
44 مبادئ السي شارب لألستاذ «دانيت ليو»
}
;)"********************************"(Console.WriteLine
;"//a.s = "mohamed
;//a.age = 23
}
}
فسػػوؼ يقػػوـ البرنػػام بالػػذىاب إلػػى المشػػيد الفػػارغ public studentوسػػوؼ يجػػد بج ػواره this
فيبحث عف المشيد المناسب الذي يوجد بو القيـ اربعة قيـ.
45 مبادئ السي شارب لألستاذ «دانيت ليو»
}
} { interface er
}
}
}
} { class b747
} { class b747b : b747
} { interface fly
} { interface fly1 : fly
نه ٙنٕب//
} { class b747c : b747, fly ,fly1
}
00:34:37
==========================//VC10 Part1 CH10_6 projectبداية
متى أستخدـ abstract classوأضع بداخمو معطيات
abstract class cat
عإال يرٗ اعرخذو اتغرشكد كالط ٔأضغ تذاخهّ يؼطٛاخ //
} {
} { class kit : cat
القطار
القطػػار يكػػوف مػػف نػػوع abstractومػػا أسػػفمو (قطػػار نقػػؿ -قطػػار شػػحف – قطػػار الركػػاب) يكونػػوف
األبناء .
أداة النقل
سيارة قطار
سيارة الدفع
سيارة مدجمة سيارة ضغط
الرباعي قطار الركاب قطار الشحن قطار نقل
فػػي ىػػذا المثػػاؿ سػػوؼ نسػػتخدـ interfaceوذلػػؾ ألف االبػػف «سػػيارة مدمجػػة» يشػػترؾ مػػع «سػػيارة
جميعػػا مشػػتركيف فػػي القػػدرة عمػػى
ً الػػدفع الربػػاعي» و «قطػػار الركػػاب» فػػي نفػػس الخصػػائص فيمػػا
48 مبادئ السي شارب لألستاذ «دانيت ليو»
أداة النقل
سيارة قطار
سيارة الدفع
سيارة مدجمة سيارة ضغط قطار الركاب قطار الشحن قطار نقل
الرباعي
Interface Interface
IPassengerCarrier IHeavyLoadCarrier
:Struct type
00:44:58
Structيكوف مف نوع value Type
أما الكالس مف نوع reference Type
عند عمؿ instanceلكالس سوؼ يؤشر instanceعمى نفس المكاف في الذاكرة .
وقمػت بعمػؿ Instance class MyClass{public int }val لػو كػاف عنػدي classاسػمو
منو
49 مبادئ السي شارب لألستاذ «دانيت ليو»
وقمت بعمؿ
Console.WriteLine("objectA.val = {0}", objectA.val);// = 20
Console.WriteLine("objectB.val = {0}", objectB.val);// = 20
objectA
20
objectB
structA 30
structB 40
50 »مبادئ السي شارب لألستاذ «دانيت ليو
TestSize("C:\\");
}
51 مبادئ السي شارب لألستاذ «دانيت ليو»
00:36:03