Лекц №3
C# хэлний тухай
C# хэл нь .NET Фреймворктэй хамт зохиогдсон шинэ
програмчлалын хэл
C#
хэл
нь
энгийн
боловч
орчин
үеийн
про...
C# програмын бүтэц

3
C# програмын бүтэц
using түлхүүр үг нь програмд ашиглах
классуудын
бүтэн
замыг
зааж
өгөх
шаардлагагүй болгож хялбарчилан ...
C# хэлний өгөгдлийн төрөл
C# хэлний төрлүүдийг
 Эгэл төрөл (value type)
 Заалт төрөл (reference type) гэсэн хоёр ангила...
C# хэлний өгөгдлийн төрөл

6
C# хэлний өгөгдлийн төрөл
CLR нь заалт ба эгэл төрлүүдийг санах ойд
ялгаатай байршуулдаг.
Эгэл төрлийн объект нь стект б...
C# хэлний өгөгдлийн төрөл

Apparel myApparel = new Apparel();
Apparel myApparel2 = myApparel;

8
Эгэл буюу үндсэн төрлүүд
C# төрөл

FCL төрөл

object

System.Object

string

System.String

decimal

System.Decimal

bool
...
Эгэл буюу үндсэн төрлүүд
C#
хэлний
үндсэн
төрлүүд
фреймворкийн төрөлтэй харгалзана.

бүгд

Аль ч төрлийг нь хэрэглэж бол...
Эгэл буюу үндсэн төрлүүд
Үндсэн төрөлтэй ажиллаж байх үед дараах
онцлог зүйлс байна.

C#
хэлний
үндсэн
төрлүүд
нь
фреймво...
Эгэл буюу үндсэн төрлүүд
Энэ төрөл нь 128 бит хэмжээтэй, 28
цифрийн нарийвчлалтай бодит тоон төрөл
юм.
decimal төрлийн т...
Эгэл буюу үндсэн төрлүүд
Энэ төрөл нь зөвхөн true ба false утга авна.
bool төрлийн утгыг бүхэл тоон төрөлрүү
хөрвүүлж бо...
Эгэл буюу үндсэн төрлүүд
Энэ төрөл нь 16 бит юникод тэмдэгтийг
дүрслэх ба тэмдэггүй бүхэл тоо
Тэмдэгтийн утгыг дан хашил...
Эгэл буюу үндсэн төрлүүд
byte нь 0-ээс 255 хүртэлх
тэмдэггүй 8 бит бүхэл тоо

утгыг авах

sbyte нь -128-с 127 хүртэлх ут...
Эгэл буюу үндсэн төрлүүд
short, int, long төрлүүд нь харгалзан 16, 32,
64 бит тэмдэгтэй бүхэл тоо
ushort, uint, ulong тө...
Эгэл буюу үндсэн төрлүүд
float төрөл нь 1.5 x 10 –45 -с 3.4 x 1038 хүртэл
утга бүхий 7 цифрийн нарийвчлалтай бодит
тоо
d...
Эгэл буюу үндсэн төрлүүд
float төрлийн тогтмол утгын ард F үсэг тавина.
double төрлийн тогтмол утгын ард D үсэг
тавина.
...
Эгэл буюу үндсэн төрлүүд
 Тоочих төрөл буюу enum төрөл нь нэр оноосон
тогтмол утгуудын олонлог юм.
 enum төрөл дэхь нэрү...
Эгэл буюу үндсэн төрлүүд
Синтакс:

Жишээ:

[access modifiers]enum <identifier> [:enum-base]
{
enum body
}

enum Fabric:sho...
Эгэл буюу үндсэн төрлүүд
 Бүтэц төрлийг
тодорхойлдог

классын

хөнгөн

хувилбар

гэж

 Бүтэу нь классын адил талбар, мет...
Эгэл буюу үндсэн төрлүүд
Синтакс:

Жишээ:

[attribute][modifier] struct
identifier [:interfaces]

public struct DressShirt...
Заалт төрлүүд
System.String буюу string класс нь 16 бит
юникод тэмдэгтүүдийн дарааллыг төлөөлөх
заалт төрөл.
Тэмдэгт мөр...
Заалт төрлүүд
 System.String буюу string класс нь 16 бит юникод
тэмдэгтүүдийн дарааллыг төлөөлөх заалт төрөл.
 Тэмдэгт м...
Заалт төрлүүд
Массив
нь
нэгэн
ижил
өгөгдлүүдийг хадгалах төрөл

төрлийн

C# -д 3 төрлийн массив байдаг.
1. ArrayList – м...
Заалт төрлүүд
 int[] myRating;

// массив зарлах

 myRating = new int[5];

хуваарилах

//массив үүсгэх, санах ой

 int[...
C# хэлний үйлдлүүд

Үйлдэл Эрэмбэ

Тодорхойлолт

+

3

Нэмэх

_

3
2

Үржих

/

2

Хуваах

%

2

Үлдэгдэлээр хуваах

++

1...
C# хэлний үйлдлүүд

Үйлдэл

Эрэмбэ Тодорхойлолт

жишээ

~

1

Бит гүйцээлт

int x = ~127; // returns -128

>>

4

Баруун ш...
C# хэлний үйлдлүүд

Үйлдэл

Тодорхойлолт

==

Тэнцүү

!=

Тэнцүү биш

<

Бага

<=

Бага буюу тэнцүү

>

Их

>=

Их буюу тэ...
C# хэлний үйлдлүүд

Тодорхойлолт

жишээ

&&

Логик AND

||

Логик OR

if (x == y && y < 30) {...}
Хэрвээ эхний илэрхийлэл ...
C# хэлний үйлдлүүд
Синтакс:
if (boolean expression) {

Жишээ:
if (bmi < 24.9) {
weight = "normal";

// statements
} else {...
C# хэлний үйлдлүүд
Синтакс:

Жишээ:

switch (expression)
{
case constant expression:
// statements;
// break/goto/return()...
C# хэлний үйлдлүүд
Синтакс:

Жишээ:

while ( boolean expression )
{
body
}

byte[] r = {0x00, 0x12, 0x34, 0x56, 0xAA, 0x55...
C# хэлний үйлдлүүд
Синтакс:

Жишээ:

do
{

byte[] r = {0x00, 0x12, 0x34, 0x56, 0xAA,
0x55, 0xFF};

do-body
} while ( boole...
C# хэлний үйлдлүүд
Синтакс:

Жишээ:

for ( [initialization];
[termination condition];
[iteration] )

int[] r = {80, 88, 90...
C# хэлний үйлдлүүд
Синтакс:

Жишээ:

foreach ( type identifier in
collection )
{
body
}

int totVal = 0;
foreach (int arra...
C# хэлний үйлдлүүд
Синтакс:
break
continue
goto identifier;
goto case exp;
goto default;

return [expression] ;

37
Upcoming SlideShare
Loading in …5
×

лекц-3

629 views
468 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
629
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

лекц-3

  1. 1. Лекц №3
  2. 2. C# хэлний тухай C# хэл нь .NET Фреймворктэй хамт зохиогдсон шинэ програмчлалын хэл C# хэл нь энгийн боловч орчин үеийн програмчлалын асуудлуудыг шийдэхэд тохиромжтой, өндөр бүтээмжтэй хэл C# хэл нь C++ болон Java хэлнээс удамшин үүссэн бөгөөд объект хандлагат, компонентод суурилсан, бүтцийн програмчлалуудыг бүгдийг нь дэмжинэ. 2
  3. 3. C# програмын бүтэц 3
  4. 4. C# програмын бүтэц using түлхүүр үг нь програмд ашиглах классуудын бүтэн замыг зааж өгөх шаардлагагүй болгож хялбарчилан холбож өгдөг. Програмын логик, өгөгдөл зэрэг бүхий л зүйл нь класс дотор бичигдэх ѐстой. Классын хүрээнээс гадуур глобаль хувьсагч гэж байдаггүй. C# програм бүрт Main() метод хэрэгтэй байдаг. Энэ метод нь програмын эхлэх цэг болдог. Энэ метод нь үргэлж static хувиргагчтай байх ѐстой бөгөөд M үсэг нь томоор бичигдэх ѐстой. 4
  5. 5. C# хэлний өгөгдлийн төрөл C# хэлний төрлүүдийг  Эгэл төрөл (value type)  Заалт төрөл (reference type) гэсэн хоёр ангилалд хуваадаг. Заалт ба эгэл төрлүүд нь System.Object классаас удамшсан байдаг. Заалт төрлүүд нь System.Object классаас шууд удамшсан байдаг. Эгэл төрлүүд нь System.Object классаас System.ValueType классаар дамжуулан удашдаг. 5
  6. 6. C# хэлний өгөгдлийн төрөл 6
  7. 7. C# хэлний өгөгдлийн төрөл CLR нь заалт ба эгэл төрлүүдийг санах ойд ялгаатай байршуулдаг. Эгэл төрлийн объект нь стект байрладаг. Эгэл төрөл үүсэхдээ 0 утга авдаг. Заалт төрлийн объектын хаяг нь стект байрлана, жинхэнэ утга нь хийп санах ойд байрладаг. Заалт төрөл үүсэхдээ null утга авдаг. 7
  8. 8. C# хэлний өгөгдлийн төрөл Apparel myApparel = new Apparel(); Apparel myApparel2 = myApparel; 8
  9. 9. Эгэл буюу үндсэн төрлүүд C# төрөл FCL төрөл object System.Object string System.String decimal System.Decimal bool System.Boolean char System.Char byte System.Byte sbyte System.SByte short System.Int16 int System.Int32 long System.Int64 ushort System.UInt16 uint System.UInt32 ulong System.UInt64 float System.Single double System.Double 9
  10. 10. Эгэл буюу үндсэн төрлүүд C# хэлний үндсэн төрлүүд фреймворкийн төрөлтэй харгалзана. бүгд Аль ч төрлийг нь хэрэглэж болно. Төрөл бүр эзлэнэ. санах ойд тогтмол хэмжээ Жишээ: Дараах хувьсагч зарлалтууд нь бүгд ижил IL код үүсгэнэ. System.Int32 age = new System.Int32(17); int age = 17; System.Int32 age = 17; 10
  11. 11. Эгэл буюу үндсэн төрлүүд Үндсэн төрөлтэй ажиллаж байх үед дараах онцлог зүйлс байна. C# хэлний үндсэн төрлүүд нь фреймворкийн бүтэц төрлүүд байдаг. Уг бүтцүүдийн гишүүд нь тухайн төрөл дээр ажиллах нэмэлт боломжуудыг бий болгодог. Тодорхой төрлийн утгуудын ард дагавар үсэг тавихыг шаарддаг. 11
  12. 12. Эгэл буюу үндсэн төрлүүд Энэ төрөл нь 128 бит хэмжээтэй, 28 цифрийн нарийвчлалтай бодит тоон төрөл юм. decimal төрлийн тогтмол утгын ард М үсэг тавина. decimal iRate = 3.9834M; // M үсэг нь decimal iRate = decimal.Round(iRate,2); // 3.98 decimal p = decimal.Parse("100.05"); 12
  13. 13. Эгэл буюу үндсэн төрлүүд Энэ төрөл нь зөвхөн true ба false утга авна. bool төрлийн утгыг бүхэл тоон төрөлрүү хөрвүүлж болохгүй. bool bt = true; string bStr = bt.ToString(); // "true" bt = (bool) 1; // Буруу 13
  14. 14. Эгэл буюу үндсэн төрлүүд Энэ төрөл нь 16 бит юникод тэмдэгтийг дүрслэх ба тэмдэггүй бүхэл тоо Тэмдэгтийн утгыг дан хашилтад бичнэ. myChar = 'B'; myChar = (char) 66; // 'B' -ын ASCII код 66 байдаг. Төрөл хувиргав bool bt; string pattern = "123abcd?"; myChar = pattern[0]; // '1‘ bt = char.IsLetter(pattern,3); // true ('a') bt = char.IsNumber(pattern,3); // false bt = char.IsNumber(pattern,2); // true ('3') 14
  15. 15. Эгэл буюу үндсэн төрлүүд byte нь 0-ээс 255 хүртэлх тэмдэггүй 8 бит бүхэл тоо утгыг авах sbyte нь -128-с 127 хүртэлх утгыг авах тэмдэгтэй 8 бит бүхэл тоо 15
  16. 16. Эгэл буюу үндсэн төрлүүд short, int, long төрлүүд нь харгалзан 16, 32, 64 бит тэмдэгтэй бүхэл тоо ushort, uint, ulong төрлүүд нь харгалзан 16, 32, 64 бит тэмдэггүй бүхэл тоо int iMax = int.MaxValue; // хамгийн их 32 бит бүхэл тоо int pVal = int.Parse("100"); // тэмдэгт мөрлүү хувиргах 16
  17. 17. Эгэл буюу үндсэн төрлүүд float төрөл нь 1.5 x 10 –45 -с 3.4 x 1038 хүртэл утга бүхий 7 цифрийн нарийвчлалтай бодит тоо double төрөл нь 5 x 10 –324 -с 1.7 x 10308 хүртэл утга бүхий 15-16 цифрийн нарийвчлалтай бодит тоо Бодит тоон үйлдлийн үр дүн тодорхой бус үед NaN (Not a Number) утга буцаана. Бодит тоог өөр төрөлрүү хувиргахдаа System.Convert методыг ашиглана. 17
  18. 18. Эгэл буюу үндсэн төрлүүд float төрлийн тогтмол утгын ард F үсэг тавина. double төрлийн тогтмол утгын ард D үсэг тавина. float xFloat = 24567.66F; int xInt = Convert.ToInt32(xFloat); // returns 24567 int xInt2 = (int) xFloat; string xStr = Convert.ToString(xFloat); single zero = 0; double xDouble = 124.56D; 18
  19. 19. Эгэл буюу үндсэн төрлүүд  Тоочих төрөл буюу enum төрөл нь нэр оноосон тогтмол утгуудын олонлог юм.  enum төрөл дэхь нэрүүдэд утга оноогоогүй бол автоматаар 0,1,2,3 гэх мэт утгатай болно.  Хандалт нь enum төрлийн хэрэглэгдэх хүрээг тодорхойлно. Үндсэн хандалт нь internal байдаг ба энэ нь тухайн ассемблей доторх ямар ч классаас хандахыг зөвшөөрнө. Public хандалтыг ашигласнаар ямарч ассемблейн ямарч классаас хандахыг зөвшөөрнө.  Суурь төрөл нь тогтмолын утга ямар төрөлтэй байхыг тодорхойлно. 19
  20. 20. Эгэл буюу үндсэн төрлүүд Синтакс: Жишээ: [access modifiers]enum <identifier> [:enum-base] { enum body } enum Fabric:short { Cotton = 1, Silk = 2, Wool = 4, Rayon = 8, Other = 128 } 20
  21. 21. Эгэл буюу үндсэн төрлүүд  Бүтэц төрлийг тодорхойлдог классын хөнгөн хувилбар гэж  Бүтэу нь классын адил талбар, метод, проперти, үзэгдэл, байгуулагч гишүүдтэй байна.  Бүтэц төрөл нь эгэл төрөл учраас програмаас харьцахад ойр, шууд стект байрлана. Энэ нь хийп санах ой дахь өгөгдөлрүү заагчаар дамжуулан хандаснаас илүү хурдан байдаг сайн талтай  Бүтэц төрлийг метод буцах төрөлд ашиглах, параметр болгон дамжуулахад удаан байдаг муу талтай 21
  22. 22. Эгэл буюу үндсэн төрлүүд Синтакс: Жишээ: [attribute][modifier] struct identifier [:interfaces] public struct DressShirt { public float CollarSz; { public int SleeveLn; struct-body } // constructor public DressShirt(float collar, int sleeve) { this.CollarSz = collar; this.SleeveLn = sleeve; } } 22
  23. 23. Заалт төрлүүд System.String буюу string класс нь 16 бит юникод тэмдэгтүүдийн дарааллыг төлөөлөх заалт төрөл. Тэмдэгт мөрийг тодорхойлохдоо дараах хоѐр хэлбэрийг ашиглаж болно.  Эскэйп хэлбэр – давхар хашилтанд хийх  Ердийн хэлбэр – давхар хашилтын өмнө @ тэмдэг ашиглах  path  path 23 = @"c:my documentsnotes.txt"; = "c:my documentsnotes.txt";
  24. 24. Заалт төрлүүд  System.String буюу string класс нь 16 бит юникод тэмдэгтүүдийн дарааллыг төлөөлөх заалт төрөл.  Тэмдэгт мөрийг тодорхойлохдоо хэлбэрийг ашиглаж болно. дараах хоѐр  Эскэйп хэлбэр – давхар хашилтанд хийх  Ердийн хэлбэр – давхар хашилтын өмнө @ тэмдэг ашиглах  path = @"c:my documentsnotes.txt";  path = "c:my documentsnotes.txt";  System.String класс нь тэмдэгт мөртэй ажиллах методуудыг агуулдаг. 24
  25. 25. Заалт төрлүүд Массив нь нэгэн ижил өгөгдлүүдийг хадгалах төрөл төрлийн C# -д 3 төрлийн массив байдаг. 1. ArrayList – массивыг динамикаар удирдах боломж олгопог. 2. List – ArrayList төрлийн аюулгүй хувилбар. 3. System.Array – массивын элемэнтүүд дээр боловсруулалт хийх олон методуудыг агуулдаг. <төрөл> нэр [ ] = new <төрөл> [n] [{ эхний утгууд}] 25
  26. 26. Заалт төрлүүд  int[] myRating; // массив зарлах  myRating = new int[5]; хуваарилах //массив үүсгэх, санах ой  int[] myRating = new int[5] {3,4,7,2,8};  int[] myRating = {3,4,7,2,8}; // товч бичиглэл  Apparel myApparel = {new Apparel(), new Apparel(), new Apparel()); // Apparel объектыг агуулах массив  Fabric[] enumArray = new Fabric[2];  enumArray[0] = Fabric.Cotton; //тоочих төрөлтэй массив  int[ , ] myRatings = {{3 , 7}, {4 , 9}, {2, 6}}; //3 мөр, 2 багана 26
  27. 27. C# хэлний үйлдлүүд Үйлдэл Эрэмбэ Тодорхойлолт + 3 Нэмэх _ 3 2 Үржих / 2 Хуваах % 2 Үлдэгдэлээр хуваах ++ 1 Нэмэгдүүлэх __ 1 Хорогдуулах int x = y + 10; Хасах * Жишээ 27 int x = 60; int y = 15; int z = x * y / 2; // 450 y = x % 29 ; // 2 x = 5; Console.WriteLine(x++) // x = 5 Console.WriteLine(++x) // x = 6
  28. 28. C# хэлний үйлдлүүд Үйлдэл Эрэмбэ Тодорхойлолт жишээ ~ 1 Бит гүйцээлт int x = ~127; // returns -128 >> 4 Баруун шилжүүлэх << 4 Зүүн шилжүүлэх byte x = 10; // binary 10 is 01010 int result = x << 1; // 20 = 10100 result = x >> 2; // 5 = 00101 & 5 Бит AND | 6 Бит OR ^ 7 Бит XOR 28 byte x = 12; // 001100 byte y = 11; // 001011 int result = x & y; //8 = 001000 result = x ^ y; //7 = 000111
  29. 29. C# хэлний үйлдлүүд Үйлдэл Тодорхойлолт == Тэнцүү != Тэнцүү биш < Бага <= Бага буюу тэнцүү > Их >= Их буюу тэнцүү жишээ 29 if (x == y) {...} if (x <= y) {...}
  30. 30. C# хэлний үйлдлүүд Тодорхойлолт жишээ && Логик AND || Логик OR if (x == y && y < 30) {...} Хэрвээ эхний илэрхийлэл худал бол дараагийн илэрхийлэлийг үнэлэхгүй & Логик AND | Логик OR if (x== y | y < 30) {...} Үргэлж хоёр дахь илэрхийллийг үнэлнэ. ! Логик үгүйсгэл if !(x ==y && y < 30) {...} Үйлдэл 30
  31. 31. C# хэлний үйлдлүүд Синтакс: if (boolean expression) { Жишээ: if (bmi < 24.9) { weight = "normal"; // statements } else { // statements riskFactor = 2; } else { weight = "over"; } riskFactor=6; } 31
  32. 32. C# хэлний үйлдлүүд Синтакс: Жишээ: switch (expression) { case constant expression: // statements; // break/goto/return() case constant expression: // statements; // break/goto/return() default: // statements; // break/goto/return() } switch (ndx) { case 1: fabric = "cotton"; blend = "100%"; break; case 2: // 2 ба 3 хамт case 3: fabric = "cotton"; blend = "60%"; break; default: // optional fabric = "cotton"; blend = "50%"; break; } 32
  33. 33. C# хэлний үйлдлүүд Синтакс: Жишээ: while ( boolean expression ) { body } byte[] r = {0x00, 0x12, 0x34, 0x56, 0xAA, 0x55, 0xFF}; int ndx=0; int totVal = 0; while (ndx <=6) { totVal += r[ndx]; ndx += 1; } 33
  34. 34. C# хэлний үйлдлүүд Синтакс: Жишээ: do { byte[] r = {0x00, 0x12, 0x34, 0x56, 0xAA, 0x55, 0xFF}; do-body } while ( boolean expression ); int ndx=0; int totVal = 0; do { totVal += r[ndx]; ndx += 1; }while (ndx <= 6); 34
  35. 35. C# хэлний үйлдлүүд Синтакс: Жишээ: for ( [initialization]; [termination condition]; [iteration] ) int[] r = {80, 88, 90, 72, 68, 94, 83}; { for (int ndx = 0; ndx <= 6; ndx++) { for-body } int totVal = 0; totVal += r[ndx]; } 35
  36. 36. C# хэлний үйлдлүүд Синтакс: Жишээ: foreach ( type identifier in collection ) { body } int totVal = 0; foreach (int arrayVal in r) { totVal += arrayVal; } 36
  37. 37. C# хэлний үйлдлүүд Синтакс: break continue goto identifier; goto case exp; goto default; return [expression] ; 37

×