Intro To Csharp
Intro To Csharp
اﻟﺒﻮﺻﻠﺔ اﻟﺘﻘﻨﻴﺔ
www.boosla.com
1
!
!
C#
;using System
class PrintWelcome
{
{
Console.WriteLine("Welcome to
;)"C# programing
//
ﲨﻠﺔ اﻟﻄﺒﺎﻋﺔ
}
6
}
!Error
C#
2 - classes
ﻳﺠﺐ أن ﻳﺤﺘﻮي ﻋﻠﻰ classواﺣﺪة ﻋﻠﻰ اﻷﻗﻞ ﻣﻮﺟﻮدة داﺧﻞ ال
namespace .
10
3 - Method
وهﻲ وﺣﺪة اﻟﺒﻨﺎء اﻟﺮﺋﻴﺴﻴﺔ وﻳﺠﺐ أي classأن ﻳﺤﺘﻮي ﻋﻠﻰ method
واﺣﺪة ﻋﻠﻰ اﻷﻗﻞ وهﻲmain method .
واﻵن ﺳﻨﺒﺪأ ﺑﺸﺮح اﻟﺒﺮﻧﺎﻣﺞ ﺗﻔﺼﻴﻠﻴﺎً:
C#
using ;System
class PrintWelcome
{
{
Console.WriteLine("Welcome to
;)"C# programing
}
}
2)class PrintWelcome
وهﻲ اﺳﻢ ال classاﻟﻤﺤﺘﻮى ﻓﻲ هﺬا اﻟﺒﺮﻧﺎﻣﺞ واﻟﻤﻮﺟﻮدة
داﺧﻞ الnamespace
3) (static void Main(string[] args
وهﻲ ﺻﻴﻐﺔ اﻟﺘﻌﺮﻳﻒ ﻟﻞ main methodو اﻟﻠﺘﻲ ﻳﺠﺐ أن ﺗﺘﻮﻓﺮ
ﻓﻲ أي ﺑﺮﻧﺎﻣﺞ وﺗﻜﻮن داﺧﻞ ال classوﺗﺸﺒﻪ ﺑﺤﺪ آﺒﻴﺮ ﻟﻐﺔ
اﻟﺠﺎﻓﺎ ﻓﻲ ﺗﻌﺮﻳﻒ الmain method
C#
MS-DOS
Welcome
to C#
Programing
))3اﺳﺘﺨﺪام الMessageBox
ﻣﻌﻈﻢ ﺗﻄﺒﻴﻘﺎت #Cﺗﺴﺘﺨﺪم ﻧﻮاﻓﺬ ﺣﻮار )(dialogsﻹﻇﻬﺎر
اﻟﻤﺨﺮﺟﺎت ) ، (outputأو ﻟﺘﺬآﻴﺮ اﻟﻤﺴﺘﺨﺪم .
ﺗﺤﺘﻮي ﺑﻨﻴﺔ اﻟﻤﻜﺘﺒﺔ ﻓﻲ #Cﻋﻠﻰ Classﻳﺪﻋﻰ MessageBox
13
[SIZE=3]Console.WriteLine( );
C#
MessageBox.Show("Welcome to C#
Programming");
C#
using System;
using System.Windows.Forms;
class PrintWelcome2
{
MessageBox.Show("Welcome
;)"to C# Programming
}
}
!
C#
MessageBox.Show("Welcome to C#
Programming","Welcome Message",
MessageBoxButtons.OK,MessageBoxIcon.Info
rmation);
C#
18
MessageBoxIcon.Exclamation ﻋﻼﻣﺔ
اﻟﺘﻌﺠﺐ or
MessageBoxIcon. Information
ﻟﻠﻤﻌﻠﻮﻣﺎت or
MessageBoxIcon.Question ﻟﻠﺴﺆال
or
MessageBoxIcon.Error ﻟﻠﺨﻄﺄ
C#
MessageBoxButton.OK
MessageBoxButton.OKCancel
MessageBoxButton.YesNo
MessageBoxButton.YesNoCancel
MessageBoxButton.RetryCancel
MessageBoxButton.AbortRetryIgnore
19
;using System
class Addition
{
{
}
20
}
C#
;int number1
;int number2
21
;int sum
using System;
class Addition
string FirstNumber ,
SecondNumber;
}
23
C#
C#
;)(FirstNumber = Console.ReadLine
ﻣﻦ ال Console
Class
C#
C#
;)(SecondNumber = Console.ReadLine
C#
;)number1 = Int32.Parse(FirstNumber
25
ال ﻣﻦ
Int32 Class
C#
;)number2 = Int32.Parse(SecondNumber
26
C#
C#
C#
...وهﻜﺬا
C#
using System;
class Addition
string FirstNumber ,
SecondNumber;
Console.Write("Enter First
Number :");
FirstNumber =
Console.ReadLine();
Console.Write("\nEnter Second
Number :");
SecondNumber =
Console.ReadLine();
number1 =
Int32.Parse(FirstNumber);
number2 =
Int32.Parse(SecondNumber);
//ﲨﻊ اﻟﺮﻗﻤﲔ
إﻇﻬﺎر اﻟﻨﺘﻴﺠﺔ//
}
}
ﻣﻼﺣﻈﺔ :
*ﻟﻜﺘﺎﺑﺔ أي ﻣﻼﺣﻈﺔ داﺧﻞ ال codeﻳﺠﺐ أن ﺗﺴﺒﻘﻬﺎ ﺑـ //
.
ﻗﻢ ﺑﺘﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ:
وﻟﻨﻔﺮض ادﺧﻞ اﻟﺮﻗﻢ اﻷول 45واﻟﺮﻗﻢ اﻟﺜﺎﻧﻲ 72ﺳﻴﺼﺒﺢ
اﻟﻨﺎﺗﺞ آﻤﺎ ﻳﻠﻲ:
MS-DOS
: 2 ﻣﻼﺣﻈﺔ
*إذا ﺣﺎوﻟﺖ إدﺧﺎل ﻗﻴﻢ ﺗﺤﺘﻮي ﻋﻠﻰ آﺴﻮر أو ﻋﺪم إدﺧﺎل
.ﻗﻴﻢ ﻓﺴﻴﻌﻄﻲ ﺧﻄﺄ ﻷﻧﻪ ﻟﻢ ﻳﺘﻢ ﻣﻌﺎﻟﺠﺘﻬﺎ
:ﻃﺮﻳﻘﺔ أﺧﺮى
ﺛﻢstring ﻓﻲ ﺟﻤﻠﺔ اﻹدﺧﺎل ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﻣﺘﻐﻴﺮﻳﻦ ﻣﻦ ﻧﻮع
أﺳﻨﺪﻧﺎ اﻟﻴﻬﻤﺎ اﻟﻘﻴﻢ اﻟﻤﺪﺧﻠﺔ ﺛﻢ ﻗﻤﻨﺎ ﺑﺘﺤﻮﻳﻠﻬﻤﺎ إﻟﻰ
integer .
C#
FirstNumber = Console.ReadLine();
SecondNumber = Console.ReadLine();
number1 = Int32.Parse(FirstNumber);
number2 = Int32.Parse(SecondNumber);
31
C#
number1 = Int32.Parse(Console.ReadLine());
number2 = Int32.Parse(Console.ReadLine());
C#
using System;
class Addition
number2 =
Int32.Parse(Console.ReadLine());
Console.Write("\nEnter Second
Number :");
number1 =
Int32.Parse(Console.ReadLine());
Console.WriteLine("\nThe Sum is
:{0}",sum);
}
33
C#
;)number1 = Int32.parse(FirstNumber
C#
;)number2 = Int32.parse(SecondNumber
ﻣﻼﺣﻈﺔ :
number1 = 45,
number2 = 72واﺻﺒﺤﺖ ﺗﻤﺘﻠﻚ ﻣﻮاﻗﻌﻬﻢ ﻗﻴﻢ ووﺿﻌﻨﺎ
ﺑﻌﺪهﺎ أﻣﺮ ﺁﺧﺮ ﻹﻋﺎدة ادﺧﺎل اﻟﻘﻴﻤﺘﻴﻦ ﻣﺮﻩ أﺧﺮى
number1= 7,number2 = 5ﻓﻠﻮ ﻗﻤﻨﺎ ﺑﻌﻤﻠﻴﺔ اﻟﺠﻤﻊ
اﻵن ﻓﺈن اﻟﻨﺎﺗﺞ ﺳﻴﻜﻮن 12أي أن ﻗﻴﻤﻬﺎ اﻟﺤﺎﻟﻴﺔ 7و5
وﻟﻴﺲ اﻟﻘﻴﻢ اﻟﺴﺎﺑﻘﺔ.
C#
40
c = 5;
Console.WriteLine(c); // 5 ﻳﻄﺒﻊ
Console.WriteLine(c); // 6 ﻳﻄﺒﻊ
c = 5;
Console.WriteLine(c); // 5 ﻳﻄﺒﻊ
Console.WriteLine(c); // 6 ﻳﻄﺒﻊ
MS-DOS
6
41
5
6
6
C#
{
}
ﻣﻼﺣﻈﺔ :
1-اﻟﻌﻤﻠﻴﺎت == >= ، <= ،!= ،ﻳﺠﺐ أﻻّ ﻳﻜﻮن ﺑﻴﻦ
اﻹﺷﺎرﺗﻴﻦ ﻓﺮاغ )= =( ،وإﺷﺎرة = ﻳﺠﺐ أن ﺗﻜﻮن ﻋﻠﻰ
ﻳﻤﻴﻦ اﻹﺷﺎرة اﻷﺧﺮى( <=) .
2-ﻳﺠﺐ أﻻّ ﺗﺨﻠﻂ ﺑﻴﻦ ﻣﺴﺎواة اﻟﻤﻘﺎرﻧﺔ )==( وﻣﺴﺎواة
اﻹﺳﻨﺎد(=) .
ﻣﺴﺎواة اﻟﻤﻘﺎرﻧﺔ )==( ﺗﻌﻨﻲ ﻗﺎرن ﺑﻴﻦ اﻟﻘﻴﻤﺘﻴﻦ ﻋﻠﻰ
ﻃﺮﻓﺎ اﻟﻤﺴﺎواة هﻞ هﻤﺎ ﻧﻔﺲ اﻟﻘﻴﻤﺔ أم ﻻ .
وﻣﺴﺎواة اﻹﺳﻨﺎد )=( ﺗﻌﻨﻲ أﻋﻄﻲ اﻟﻘﻴﻤﺔ ﻓﻲ اﻟﻄﺮف
اﻷﻳﻤﻦ ﻟﻠﻤﺴﺎواة ﻟﻠﻤﺘﻐﻴﺮ ﻓﻲ اﻟﻄﺮف اﻷﻳﺴﺮ.
C#
C#
using System;
class Comparison
Console.Write(" /n Pleas
Enter First number ");
number1 = Int32.Parse(
Console.ReadLine( ));
Console.Write("/n Pleas
46
number2 = Int32.Parse(
Console.ReadLine( ));
if(number1 == number2)
if(number1 != number2)
number2);
MS-DOS
200 != 100
وﺗﺮآﻴﺒﺔif/else .
ﻣﻼﺣﻈﺔ :
if , else , switch , While , do/while , for , foreachآﻠﻬﺎ
آﻠﻤﺎت ﻣﺤﺠﻮزة keywords
واﻟﺠﺪول اﻟﺘﺎﻟﻲ ﻳﺬآﺮ ﻗﺎﺋﻤﺔ اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة ﻓﻲC# :
!
”Print “Passed
C#
; )“ Console.WriteLine( “ Passed
“ Print “ Passed
Else
“ Print “Failed
C#
; )“ Console.WriteLine( “ Passed
else
; )“ Console.WriteLine( “ Failed
C#
“ Print “ A
Else
“ Print “ B
54
Else
If student’s grade is
greater than or equal to 70
Print “ C “
Else
If student’s grade is
greater than or equal to 60
Print “ D “
Else
If student’s
grade is greater than or equal to 50
Print “
E “
Else
Print “
F “
C#
55
Console.WriteLine(" A ");
else
Console.WriteLine(" B ");
else
Console.WriteLine(" C
");
else
if (studentGrade >=
60)
Console.WriteLine(" D ");
else
if
(studentGrade >= 50)
Console.WriteLine(" E ");
56
else
Console.WriteLine(" F ");
C#
Console.WriteLine(" A ");
Console.WriteLine(" B ");
Console.WriteLine(" C ");
Console.WriteLine(" D ");
Console.WriteLine(" E ");
else
57
C#
Console.WriteLine( “ x
; ) “ and y are > 5
else
Console.WriteLine( “ x is
; ) “ <= 5
C#
{
Console.WriteLine( “ x
; ) “ and y are > 5
}
else
آﻤﺎ ﻳﻠﻲ:
C#
;product = 2 * product
MS-DOS
61
16
32
64
128
256
512
1024
C#
اﻟﺪرﺟﺎت
ﻣﻼﺣﻈﺔ :
ﻳﺠﺐ إﻋﻄﺎء ﻗﻴﻢ ﺑﺪاﺋﻴﺔ ﻷي ﻣﺘﻐﻴﺮ ﻳﺘﻢ اﻟﺰﻳﺎدة
ﻋﻠﻴﻪ أو اﻟﻄﺮح ﻣﻨﻪ أو أي ﻋﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ ﻓﻲ
آﻞ ( loopآﻘﻴﻤﺔ productﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ (
،ﻷﻧﻪ ﻋﻨﺪﻣﺎ ﻳﺴﺘﻘﺒﻞ ﻗﻴﻤﺔ ﻻ ﻳﻌﺮف ﻷي ﻗﻴﻤﺔ
ﺳﻴﺰﻳﺪهﺎ أو ﻣﻦ أي ﻗﻴﻤﺔ ﺳﻴﻄﺮﺣﻬﺎ إﻻ إذا آﺎن
ﻳﻤﻠﻚ ﻗﻴﻤﺔ ﺑﺪاﺋﻴﺔ .
واﻵن ﺳﻨﻄﺒﻖ ﺟﻤﻠﺔwhile :
C#
{
66
// ﻟﻠﺘﻮﺿﻴﺢ ﻟﻠﻤﺴﺘﺨﺪم
ﻣﺎ اﳌﻄﻠﻮب
// integer ﻗﺮاءة
اﳌﺪﺧﻞ وﲢﻮﻳﻠﻪ إﱃ
//gradeValue وﺧﺰﻧﺔ ﰲ
اﳌﺘﻐﲑ
gradeValue =
Int32.Parse(Console.ReadLine());
//total إﱃgradeValue
إﺿﺎﻓﺔ ﻗﻴﻤﺔ اﳌﺘﻐﲑ
total = total +
gradeValue;
//gradeCounter إﺿﺎﻓﺔ
ﻟﻠﻌﺪاد1 ﻗﻴﻤﺔ
gradeCounter =
67
;gradeCounter + 1
}
C#
Console.WriteLine(" \nClass
;)Average is {0} " , average
68
to zero
Else
ﺳﻴﺤﺴﺐ
اﳌﻌﺪل ﺑﻘﺴﻤﺔ ال totalﻋﻠﻰ
counterوﲣﺰﻳﻨﻬﺎ
ﺑﺎﳌﺘﻐﲑ
Averageﰒ ﻃﺒﺎﻋﺘﻬﺎ
هﺬا ﻳﻌﲏ
أﻧﻪ ﱂ ﻳﺘﻢ إدﺧﺎل أي ﻗﻴﻤﺔ
ﻓﻴﻨﺘﻘﻞ اﻟﺘﻨﻔﻴﺬ إﱃ
else
وﻳﻄﺒﻊ
“No
“ grades were entered
ﺣﻴﺚ ﻳﻘﻮم
ﺑﺈﺿﺎﻓﺔ هﺬﻩ اﻟﻘﻴﻤﺔ إﱃ ، total
ﰒ إﺿﺎﻓﺔ
ﻟﻘﻴﻤﺔcounter 1
ﰒ
اﻻﺳﺘﻌﺪاد ﻟﻘﺮاءة ﻗﻴﻤﺔ أﺧﺮى.
ﻣﻼﺣﻈﺔ :
73
C#
Console.Write("Enter Integer
Grade, -1 to Quit: ");
gradeValue = Int32.Parse(
Console.ReadLine());
total = total +
gradeValue;
75
//gradeCounter إﺿﺎﻓﺔ
ﻟﻠﻌﺪاد1
gradeCounter =
gradeCounter + 1;
// ﲨﻠﺔ اﻟﺘﺬآﲑ
ﻟﻠﻤﺴﺘﺨﺪم وﲨﻠﺔ اﻟﺘﺤﻮﻳﻞ
Console.Write("Enter Integer
Grade, -1 to Quit: ");
gradeValue =
Int32.Parse(
Console.ReadLine());
} // end while
if ( gradeCounter != 0)
// ﺣﺴﺎب اﳌﻌﺪل ﰒ
ﻃﺒﺎﻋﺘﻪ
76
average = (double
;) total / gradeCounter
Console.WriteLine("\nClass
;)average is {0} :", average
}
else
Console.WriteLine("\nNo
;)"grades were entered .
Else
C#
int passes = 0,
failures = 0,
student = 1,
result;
79
ﻣﻼﺣﻈﺔ :
وﺿﻌﻨﺎ اﻟﻘﻴﻤﺔ اﻟﺒﺪاﺋﻴﺔ ﻟﻞ student = 1ﻷن ﺷﺮط ال while
ﺳﻴﻜﻮن student <= 10ﺣﻴﺚ ﻳﺒﺪأ ﻣﻦ 1وﻳﻨﺘﻬﻲ ﻋﻨﺪ 10آﻤﺎ
ﻳﻠﻲ:
C#
C#
result =
Int32.Parse(Console.ReadLine());
if (result == 1)
passes = passes + 1;
else
failures = failures + 1;
student = student + 1;
أﺿﻒ 1ﻟﻌﺪاد
اﻟﻨﺎﺟﺤﲔpasses + 1
ﻏﲑ ذﻟﻚ
}
C#
;)(Console.WriteLine
;)"Console.WriteLine("Raise Tuition\n
*ﺗﺮآﻴﺒﺔ do/while
وهﻲ ﺗﺎﺑﻌﺔ ﻟﺘﺮآﻴﺒﺔ ، whileﻏﻴﺮ أن هﻨﺎك اﺧﺘﻼف ﺑﺴﻴﻂ وهﻮ أن
ﺗﺮآﻴﺒﺔ whileﺗﺨﺘﺒﺮ اﻟﺸﺮط ﺛﻢ ﺗﻘﻮم ﺑﺎﻟﺘﻨﻔﻴﺬ وﺷﻜﻠﻬﺎ آﺎﻟﺘﺎﻟﻲ:
C#
) while( condition
{
statement
}
83
C#
do
{
statement
; ) } while( Condition
C#
int counter = 1;
do
Console.WriteLine(counter);
counter++;
:وﻧﺘﺎﺋﺠﻪ آﺎﻟﺘﺎﻟﻲ
85
MS-DOS
1
C#
2
{ 4
6 ;counter++
} 7
87
C#
2 ;)Console.WriteLine(counter
:
C#
; int counter
C#
counter +=1
++counter
Counter++
89
C#
;using System
;using System.Windows.Forms
class Sum
{
int sum = 0;
sum+=number;
MessageBoxButtons.OK,
MessageBoxIcon.Information);
ﺗﺮآﻴﺒﺔ foreachﻋﻤﻠﻬﺎ ﻣﺸﺎﺑﻪ ﻟﺘﺮآﻴﺒﺔ forﻣﻦ ﺣﻴﺚ اﻟﺘﻜﺮار ﺑﻌﺪد ﻣﻌﻴﻦ .
ﻟﻜﻦ أهﻤﻴﺘﻬﺎ ﺗﻜﻤﻦ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺎت وﺧﺎﺻﺔ ﻣﺼﻔﻮﻓﺎت ﺛﻨﺎﺋﻴﺔ اﻷﺑﻌﺎد .ﻓﺒﺪﻻً
ﻣﻦ وﺿﻊ forداﺧﻞ forﻳﻤﻜﻨﻨﺎ اﺳﺘﺨﺪام foreachﺑﺠﻤﻠﺔ واﺣﺪة وﺳﻨﺘﻮﺳﻊ
ﺑﻬﺎ ﻋﻨﺪﻣﺎ ﻧﺄﺧﺬ اﻟﻤﺼﻔﻮﻓﺎت ﺑﺈذن اﷲ.
ﻓﻲ هﺬا اﻟﺪرس:
ﺳﻨﻮﺿﺢ ﻋﺒﺎرة breakو continue .
C#
;using System
;using System.Windows.Forms
class BreakTest
{
{
;int count
count++)
if(count == 5)
break;
MessageBox.Show(output,
"Demonstratio;n the break statement" ,
MessageBoxButtons.OK ,
MessageBoxIcon.Information );
ﻻﺣﻆ أن اﻟﺮﻗﻢ 5ﻟﻢ ﻳُﻄﺒﻊ وذﻟﻚ ﻷن ifﺗﺨﺘﺒﺮ ﻗﻴﻤﺔ اﻟﻌﺪاد ﻗﺒﻞ ﻃﺒﺎﻋﺘﺔ
وﻋﻨﺪﻣﺎ ﺗﺠﺪ ﻗﻴﻤﺘﻪ 5ﺳﻴﻨﻔﺬ breakوﻳﺘﻮﻗﻒ.
C#
{
)if(count == 5
;continue
}
وﺗﻌﻨﻲ إذا أﺻﺒﺤﺖ ﻗﻴﻤﺔ اﻟﻌﺪاد 5ﻓﺈﻧﻬﺎ ﺳﺘﻬﻤﻞ ﺗﻨﻔﻴﺬ أي ﺟﻤﻠﺔ ﺗﺘﺒﻌﻬﺎ
وﺳﺘﺮﺟﻊ ﻟﺰﻳﺎدة اﻟﻌﺪاد . 1وﺳﻴﻜﻮن اﻟﻨﺎﺗﺞ آﻤﺎ ﻳﻠﻲ :
96
هﻜﺬا ﻧﻜﻮن ﺗﻌﻠﻤﻨﺎ هﺎﺗﻴﻦ اﻟﻌﺒﺎرﺗﻴﻦ ﻓﺮﻏﻢ ﺑﺴﺎﻃﺘﻬﻤﺎ إﻻ اﻧﻬﻢ ﻣﻬﻤﺎت ﺟﺪاً
97
!
ﻓﻲ درس ٍ ﺳﺎﺑﻖ ﻗﻠﻨﺎ أنّ آﻞ ﺑﺮﻧﺎﻣﺞ ﻳﺠﺐ ﻳﺤﺘﻮي ﻋﻠﻰ Class , method ,
namespace .
اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻳﻮﺿﺢ آﻴﻔﻴﺔ ﻋﻤﻞ الmethods .
98
C#
)2اﻟﺜﻮاﺑﺖ
…Math.PI = 3.1415926535
…Math.E = 2.7182818285
)3ال methodsﺷﺎﺋﻌﺔ اﻹﺳﺘﺨﺪام.
99
!Error
C#
Application.Run(new Form1());
return y * y ;
}
101
private void
calcolatputton_Click(object sender,
System.EventArgs e)
outputLabel.Text = "";
int result =
square(counter);
outputLabel.Text += "the
square of " + counter +
method ﺣﻴﺚ ﻗﻤﻨﺎ أوﻻً ﺑﻜﺘﺎﺑﺔ ال. اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ هﻮ اﻟﻜﻮد آﺎﻣﻞ ﻟﻠﺒﺮﻧﺎﻣﺞ
method ﻗﻤﻨﺎ ﺑﺎﺳﺘﺪﻋﺎء هﺬا الbutton ﻹﻧﺘﺎج ﻣﺮﺑﻊ اﻷرﻗﺎم ﺛﻢ وداﺧﻞ ال
ﺛﻢ اﺳﻨﺪﻧﺎهﺎfor ﺑﺎﺳﺘﺨﺪام ﺟﻤﻠﺔ10 - 1 ﻣﻦcounter واﺳﻨﺪﻧﺎ اﻟﻴﻪ ﻗﻴﻢ
label . ﺛﻢ ﻃﺒﺎﻋﺘﻬﺎ ﻋﻠﻰ الresult. اﻟﻰ اﻟﻤﺘﻐﻴﺮ
f5 . أوstart ﺛﻢDebug وﻟﺘﻔﻌﻴﻞ اﻟﺒﺮﻧﺎﻣﺞ اذهﺐ اﻟﻰ
. ﻟﻬﺬا اﻟﺒﺮﻧﺎﻣﺞoutput واﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ هﻮ ال
102
C#
C#
;))Console.writeline(Math.sqrt(4
C#
; double y = 4.5
وﻳﻜﻮن اﻟﻨﺎﺗﺞ هﻨﺎ أﻳﻀﺎ ً 2ﻷﻧﻪ ﺗﻢ ﺗﺤﻮﻳﻠﻪ إﻟﻰ intﻗﺒﻞ إﻳﺠﺎد اﻟﺠﺬر ،وﻟﻜﻦ
ﻓﻲ هﺬﻩ اﻟﺤﺎﻟﺔ ﻳﺤﺪث ﺧﺴﺎرة ﻓﻲ اﻟﻤﻌﻠﻮﻣﺎت.
واﻟﺠﺪول اﻟﺘﺎﻟﻲ ﻳﻮﺿﺢ ﺣﺎﻻت اﻟﺘﺤﻮﻳﻞ اﻟﻀﻤﻨﻴﺔ :
104
C#
; using System
C#
105
Console.WriteLine
ﺑﺪﻻ ً ﻣﻦ آﺘﺎﺑﺘﻬﺎ:
System.Console.WriteLine
وأي namespaceﺁﺧﺮ ﻳﺠﺐ إﺿﺎﻓﺘﻪ ﻳﺪوﻳﺎ ً ﻋﻦ ﻃﺮﻳﻖ إﺿﺎﻓﺔ اﻟﻤﻠﻒ اﻟﻤﺮﺟﻊ
ﻟﻪ ) (add referenceآﻤﺎ ﺗﻌﻠﻤﻨﺎ ﻓﻲ اﻟﺪرس اﻟﺜﺎﻟﺚ.
C#
; int x = 5
C#
ﻣﻼﺣﻈﺔ :
هﻨﺎك آﻠﻤﺔ ﻣﺤﺠﻮزة وهﻲ outﻓﻬﻲ by referenceأﻳﻀﺎ ً إﻻ أﻧﻪ ﻋﻨﺪ
ﺗﻌﺮﻳﻒ ﻣﺘﻐﻴﺮ ﻓﻲ methodاﻟﻤﺘﻐﻴﺮ اﻟﻤﺴﺘــَـﻠـَـﻢ ﻻ ﻳﺸﺘﺮط أن ﻳﺤﻤﻞ
ﻗﻴﻤﺔ ،أي ﻳﻤﻜﻦ أن ﻳﺤﻤﻞ ﻗﻴﻤﺔ إن ﻟﻢ ﻳﻜﻦ ﻧﺴﺘﻄﻴﻊ أن ﻧﻀﻊ ﻟﻪ ﻗﻴﻤﺔ
اﻓﺘﺮاﺿﻴﺔ داﺧﻞ ال ، methodوﺳﻴﺘﻀﺢ اﻟﻤﻌﻨﻰ أآﺜﺮ ﻣﻊ اﻟﺒﺮﻧﺎﻣﺞ.
اﻷول :
C#
{
; x = x * x
}
أي أﻧﻪ ﺳﻴﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻘﻴﻤﺔ اﻟﻤﺒﻌﻮﺛﺔ إﻟﻴﻪ ﺑﻌﻨﻮاﻧﻬﺎ ،ﻓﻤﺜﻼً ﻟﻮ ﺑﻌﺜﻨﺎ ﻟﻪ
5ﻓﺴﻴﻘﻮم ﻳﺤﻔﻆ ﻋﻨﻮان اﻟﻘﻴﻤﺔ 5وﻣﻦ ﺛﻢ ﻳﺮﺑﻊ اﻟﻘﻴﻤﺔ وﻳﻌﻴﺪهﺎ إﻟﻰ
ﻧﻔﺲ اﻟﻌﻨﻮان .ﻓﺈذا ﻃﺒﻌﻨﺎ ﻗﻴﻤﺔ xﺳﻴﻜﻮن اﻟﻨﺎﺗﺞ 25ﻷﻧﻪ ﻗﺪ أﺧﺬ ﻣﻜﺎﻧﻪ
ﻓﻠﻮ اﺳﺘﺪﻋﻴﻨﺎ ال methodﻣﺮة أﺧﺮى وﺑﻌﺜﻨﺎ ﻟﻪ ﻗﻴﻤﺔ xواﻟﺘﻲ هﻲ 25
ﻓﺴﻴﻜﻮن اﻟﻨﺎﺗﺞ .625
اﻟﺜﺎﻧﻲ :
C#
{
; x = 6
; x = x * x
109
}
اﻟﺜﺎﻟﺚ :
C#
{
; x = x * x
}