Lec1
- 2. Агуулга
.NET Framework танилцуулга
.NET доторх хэлүүдийн танилцуулга
С# дээрх эхний програм
Хувьсагч зарлах
Өгөгдлийн төрлүүд
Нөхцөл шалгалт, давталтууд
Goto, enumeration
Namespace
Compile options
C# хэлний түлхүүр үгс
2
- 3. .NET Framework
Microsoft компаниас гаргасан. Дотроо дараах
програмчлалын хэлүүдийг агуулна:
C# .NET
Visual Basic .NET
Visual C++ .NET
Visual J# .NET
ASP .NET
Эдгээрээс C# нь шинэ хэл юм.
Visual Basic .NET нь Visual Basic 6.0-с ялгаатай.
3
- 4. C#
Microsoft-н өмнө нь хөгжүүлж байсан хэлүүд нь Windows хөгжих
тусам гарч ирсэн онцлогуудыг нь тусгахын тулд хувилбар бүртээ
өөрчлөлт оруулж байснаас хэрэгтэй хэрэггүй зүйлсээр дүүрч
ирсэн.
Энэ асуудлыг шийдэхийн тулд .NET Framework үүсгэн энд C#
хэлийг шинээр оруулж ирсэн.
Энэ хэлийн давуу тал:
Хэрэглэгчийн интерфэйсийг Visual Basic-тэй адил хялбар хийнэ.
Java шиг бүрэн обьект хандалтат
C++ хэлний хурдыг агуулсан, бичиглэл нь төстэй.
Синтакс нь Java-тай төстэй тул Java програмистуудад ашиглахад
хялбар байдаг.
Доод төвшинд програмчлах боломжтой.
Заагчаар хангагдсан.
4
- 5. Visual Basic .NET (VB .NET)
Basic хэлнээс үүдэлтэй.
Microsoft-с гаргасан хамгийн анхны Visual хэл юм. VB 1.0-c VB
6.0 хүртэл хөгжөөд хамгийн сүүлд VB .NET болсон байна.
Давуу тал:
Хэрэглэгчийн интерфэйсыг маш хялбар гаргаж өгдөг.
Кодонд том жижиг үсэг ялгаагүй.
Хурдтай ажилладаг.
Дутагдалтай тал:
Нэгэнт Basic хэлний синтаксыг өвлөсөн тул том хэмжээний төслийг
амжилттай хийхэд асуудал гарч ирдэг.
Бүрэн обьект хандалтат биш тул мөн л том төсөлд код нь хяналтаас
хурдан гарна.
Илүү нарийн төвөгтэй доод төвшинд програмчлахдаа тааруу.
Заагч байхгүй.
5
- 6. Visual C++ .NET (VC++ .NET)
Visual C++ хэлнээс үүдэлтэй.
C++ хэлийг Windows орчны програм бичихэд хялбар болгон
өөрчилсөн хувилбар юм.
Давуу тал:
Маш доод төвшинд програмчлах боломжтой.
Илүү хурдан ажиллах програм хийж болно.
Дутагдалтай тал:
Windows-г маш сайн мэдэх туршлагатай програмист л хэрэглэх
боломжтой.
Хэрэглэгчийн интерфэйсийг хийхийн тулд маш их зүйл бичих
хэрэгтэй болно.
6
- 7. Visual J++ .NET (VJ++ .NET)
Visual J++ хэлнээс үүдэлтэй.
Java хэлтэй тун төстэй харагдах боловч ондоо.
Давуу тал:
Java дээр ажиллаж байсан хүмүүст .NET дээр програм хурдан бичиж
сурах боломж олгоно.
Дутагдалтай тал:
Өргөн хэрэглэгддэггүй.
7
- 8. ASP .NET
Динамик вэб хийхэд хэрэглэгддэг хэл юм.
ASP хэлийг сайжруулан гарсан хувилбар.
Давуу тал:
Windows-той илүү зохицон ажиллана.
8
- 9. .NET Framework
Эдгээр хэлүүд нь синтаксаараа ялгаатай бичигдэх боловч
бүгд цаана нэг л .NET Framework-н обьектуудыг
ашигладаг.
Эдгээр хэлийн алин дээр нь ч бичсэн кодыг компилятор
хөрвүүлэхэд нэг ижил IL (Intermediate Language) дээр
бичигдсэн код гардаг. Тиймээс эдгээр хэлүүд хоорондоо
кодоо бие биерүүгээ хөрвүүлэх боломжтой юм.
.NET нь үүссэн IL кодыг (Java-н байт кодтой төстэй) JIT
(Just in time compiler) ашиглан машины код руу
хөрвүүлдэг.
.NET дээр бичигдсэн програм ажиллахын тулд .NET
Framework суулгагдсан байх шаардлагатай.
9
- 10. C# дээрх эхний програм
1. Дараах кодыг first.cs нэртэй файлд бичин хадгална уу.
2. csc first.cs командыг команд промпт дээр өгнө. (start->All
Programs->Microsoft Visual Studio 2005->Visual Studio Tools-
>Visual Studio 2005 Command Prompt)
3. first командыг өгөхөд програм ажиллана.
10
- 11. Хувьсагч зарлалт
Ер нь Java-тай адил. Байж болох өгөгдлийн төрлүүд нь:
sbyte : -127 127 хүртэлх утгыг авах 8 битийн тоо (signed byte)
byte : 0-255 утга авна.
short : -32768 32768 хооронд байх тоонуудыг авна. (16 бит)
Ushort : 0-65535 хооронд байх тоонуудыг авна. (16 бит)
Int : 32 битийн тэмдэгтэй тоо
Uint : 32 битийн тэмдэггүй тоо.
Long : 64 битийн тэмдэгтэй тоо.
ulong : 64 битийн тэмдэггүй тоо.
Char : 16 битийн Unicode тэмдэгт
Float : 32 битийн тэмдэгтэй бутархай тоо.
Double : 64 битийн тэмдэгтэй бутархай тоо.
Decimal : 128 битийн тэмдэгтэй бутархай тоо.
Bool : Буулийн утга.
11
- 12. Хувьсагч зарлалт
Үнэндээ C# дээр зарласан хувьсагчийн төрөл нь тусгай C#-д л байдаг зүйл биш
бөгөөд энэ нь цаана .NET-н өгөгдлийн төрлийг ашиглаж байдаг. .NET дотор байх бүх
хэлүүд нь мөн л цаана .NET –н өгөгдлийн төрлийг хэрэглэдэг.
12
- 14. Тогтмол ашиглах
Програмд тогтмолыг ашигласнаар дараах давуу
талуудтай:
Програмыг уншиж ойлгоход хялбар болно. Жишээ нь програм
дотор энд тэнд 3,1428568 гэсэн утга явж байснаас Pi гэсэн
тогтмол зарлаад түүнийгээ хэрэглэх газраа Pi гэсэн нэрээр
хэрэглэх гэх мэт
Програмыг хурдан засах боломж өгнө. Хэрэв бид Pi 3.15
байхаар солъѐ гэвэл тогтмолынхоо утгыг л өөрчилснөөр бүх
газар өөрчлөлт орно. Тогтмол ашиглаагүй бол 3,14285 тоо
бүрийг очиж солих хэрэгтэй болно.
С#-д тогтмолыг const түлхүүр үгээр зарлана:
14
- 15. Хувьсагчийн төрөл
C#-д хоѐр янзын хувьсагчийн төрөл байдаг нь:
Утган төрөл (value type)
Заалт төрөл (reference type)
Гол ялгаа нь утган төрөл нь хувсагчийн утгыг шууд агуулж
байдаг бол заалт төрөл нь уг утгыг агуулсан санах ойг зааж
байдаг.
Эдгээр төрлүүд нь санах ойд өөр өөр хэсэгт байрладаг:
Утган төрөл нь Стект байрлана.
Заалт төрөл нь Heap санах ойд байрлана.
15
- 16. Хувьсагчийн төрөл
Утган төрөл (value type)
Заалт төрөл (reference type)
Энд x ба y нь нэг л обьектийг заана.
16
- 17. Хувьсагчийн төрөл
Хэрэглэгчийн зарласан класс бүр нь заалт төрөл
болно.
C#-д цаанаасаа хоѐр заалт төрөлтэй ирдэг. Эдгээр
нь:
object : Энэ нь Java –н object төрөлтэй ижил. C# - д байх бүх
обьектууд эндээс ямар нэг байдлаар удамшин гарсан байна.
string : Java-н String класстай ижилхэн үүрэгтэй.
Хэдийгээр string нь заалт төрөл боловч нэг ижил тэмдэгт мөрийг
зааж буй хоѐр заалтын нэгийг өөрчлөхөд нөгөөх нь
өөрчлөгдөлгүй үлддэг. Жишээн дээр харна уу.
17
- 19. Хувьсагчийн төрөл
тэмдэгтийг ашиглан тусгай тэмдэгтүүдийг тэмдэгт мөр дотор
бичиж болно:
Гэвч олон удаа тэмдэгтийг ашиглах нь ядаргаатай бол C# - д
нэг боломж бий:
19
- 20. Нөхцөл шалгалт
Нөхцөл шалгалт нь Java – тай ижил.
Switch операторын жишээ: Java-с ялгаатай нь String төрлийн
утгыг switch-д ашиглаж болно
20
- 23. Давталт
While давталт :
Do while давталт :
23
- 24. Давталт
Foreach давталт. Энэ давталт нь бүлэг обьектуудыг ( жишээ нь
массив, вектор, ...) эхнээс нь эцэс хүртэл нь давтдаг.
Анхаарах нэг чухал зүйл бол энэ давталтын үед обьектуудын
утгыг нь өөрчилж болдоггүй. Тиймээс доорх давталт
ажиллахгүй.
24
- 25. Goto
Goto – г ашиглан програмын удирдлагыг өөр хэсэгт шилжүүлж
болно:
Гэхдээ давталт руу үсрэн орох, класаас үсрэн гарах зэрэг
үйлдлийг энэ оператороор хийх боломжгүй.
Ер нь goto-г ашиглах нь сайн обьект хандалтат системд бараг
тохиолддоггүй боловч switch ашиглах үед дотор нь шилжих
зорилгоор ашиглахад их зүгээр байдаг байна.
25
- 26. Enumeration
Хэрэглэгчийн үүсгэсэн бүтэц төрөл юм. Програмыг илүү
ойлгомжтой хялбар болгож өгдөг.
Enum түлхүүр үгийг ашиглан зарлана.
26
- 29. Namespace
Энэ нь Java-н пакэжтэй ижил зүйл юм. Том системд ижил нэртэй
классууд олон гарч ирдэг ба үүнийг өөр өөр пакэжд хийснээр шийддэг.
Үүнтэй адилаар C# -н namespace дотор классууд байрладаг ба ижил
нэртэй классууд нь namespace-ээрээ ялгарна. Дараах хоѐр код
ижилхэн:
29
- 30. Namespace
Аз болоход namespace – г using ашиглан илүү товчоор бичиж
болдог :
30
- 31. Compile options
Бид өмнө нь зөвхөн консол дээр програмыг ажиллуулж үзсэн.
Тэгвэл өөрөөр классыг яаж compile хийх вэ? Csc командыг
дараах тохиргоотойгоор өгч өөр өөрөөр компиляци хийж болно:
31
- 32. Compile options
Жишээ нь дотроо хоѐр тоо нэмдэг функцтэй MathLibrary.dll файл
үүсгээд өөр нэг програм дотроос энэ dll-н хоѐр тоо нэмдэг
функцийг ашиглан ажиллах жишээ хийж үзье.
MathLibrary.dll файлын код :
Гаргаж авахдаа :
32
- 33. Compile options
MathLibrary.dll файлыг ашиглах MathClient.cs програм:
Гаргаж авахдаа : Ажиллуулахдаа : Mathclient
33