SlideShare a Scribd company logo
1 of 6
Лекц №3<br />Сэдэв: Классын зохиомж<br />,[object Object],Method  <br />Method нь классын функц, процедур юм. Классын функцийг тодорхойлж өгдөг. Класст объектыг үүсгэдэг; устгадаг үүрэгтэй байгуулагч(constructor), устгагч(destructor) гэсэн 2 method(функц) зайлшгүй байх ёстой. method-ууд нээлттэй, хаалттай, статик, виртуаль гэх мэт байж болно.<br /> Талбар<br />Талбар нь тухайн класстай холбоотой хувсагч юм. Нээлттэй, хаалттай, статик, зөвхөн унших гэх мэт байж болно. С# хэлний синтакс (бичлэг) -тай танилцсаны дараа тааралдах болно.<br />Шинж чанар<br />Шинж чанар нь талбарын боломжийг өргөтгөдөг. Шинж чанарын тусламжтайгаар хаалттай талбараас унших, бичих гэх мэтээр хандаж хэрэглэгчийн гэнэтийн болон санаатай халдлага ас хамгаалдаг.<br />С# классын төрөл<br />Класс бол объектуудын ерөнхий шинж чанаруудыг агуулсан функц, хувьсагчдын цогц юм. Жишээ нь» : ажилчны нэр, ID, цалин зэрэг мэдээллийг, мөн цалинг тодорхой хэмжээгээр өсгөдөг GiveBonus(), мэдээлэл хэвлэж харуулдаг DisplayStats() функцуудыг агуулсан Emploуее класс тодорхойлъё.<br />Зураг  1 Етрloyee<br />C#-ийн  класс хэрэлэгчийн тодорхойлсон хэд хэдэн байгуулагчтай байж болох ба класс бүр утга авдггүй анхдагч байгуулагчтай байдаг.<br />using System;<br />namespace Employees<br />{  public class Employee<br />{<br />private string fullName;<br />private int empID;<br />private float currPay;<br />// áàéãóóëàã÷èä<br />public Employee(){ }<br />public Employee(string fullName, int empID, float currPay)<br />{<br />this.fullName = fullName;<br />this.empID = empID;<br />this.currPay = currPay;<br />}<br />public void GiveBonus(float amount)<br />{ currPay += amount; }<br />public void DisplayStats()<br />{<br />Console.WriteLine(“Name: {0} “, fullName);<br />Console.WriteLine(“Pay: {0} “, currPay);<br />Console.WriteLine(“ID: {0} “, empID);<br />}<br />//Employee êëàññûí àíõäàã÷ áàéãóóëàã÷ õîîñîí áàéíà:<br />/*public class Employee<br />{<br />//...<br />public Employee(){ }<br />//...<br />}*/<br />// Õýðýâ òà êëàññ äîòîð õýðýãëýã÷èéí áàéãóóëàã÷èéã<br />// òîäîðõîéëñîí ë áîë àíõäàã÷ áàéãóóëàã÷ óñòäàã. <br />//Çà îäîî êëàññûí æèøýý ¿¿ñãýå:<br />static void Main(string[] args)<br />{// àíõäàã÷ áàéãóóëàã÷èéã äóóäíà<br />Employee e = new Employee();<br />}}}<br />Дараахь Main() функц хэрэглэгчийн тодорхойлсон 3 байгуулагч ашиглан хэд хэдэн <br />Emplоуее объект үүсгэж байна:<br />static void Main(string[] args)<br />{Employee e = new Employee(“Joe”, 80, 30000);<br />Employee e2;<br />e2 = new Employee(“Beth”, 81, 50000);<br />Console.ReadLine();    }<br /> Далд төрөлтэй дотоод хувьсагч (Implicitly Typed Local Variables)<br />C# 2008-нд гарсан нэг шинэ зүйл далд төрөлтэй дотоод хувьсагч зарлах боломжтой болсын байна. Энэ скрипт (script)хэлүүдэд ихэвчлэн ашиглагддаг хувьсагч хэрэглэлтйин техникыг авч хэрэгжүүлсэн байна. Энэ хүснэгт-1 болон хүснэгт- 2дээрх жишээн дээр тулгуурлан тайлбарлъя.<br />static void DeclareExplicitVars(){//Энгийн хувьсагчдын зарлалт;int myInt = 0;bool myBool = true;string myString = quot;
Time, marches on...quot;
;}<br />Хүснэгт- 1. Энгийн төрөл зарлалттай функц<br />Хүснэгт-1 функцад бидний мэдэх int, bool, string түлхүүр үгүүдийг ашиглаж хувьсагчийн зарлалтаа хийсэн байна.<br />static void DeclareImplicitVars(){// Далд хувьсагчын зарлалт// var variableName = initialValue;var myInt = 0;var myBool = true;var myString = quot;
Time, marches on...quot;
;// Print out the underlying type.Console.WriteLine(quot;
myInt is a: {0}quot;
, myInt.GetType().Name);Console.WriteLine(quot;
myBool is a: {0}quot;
, myBool.GetType().Name);Console.WriteLine(quot;
myString is a: {0}quot;
, myString.GetType().Name);}<br />Хүснэгт- 2. Далд төрлийг ашигласан функц<br />Харин хүснэгт-2д var гэсэн шинэ түлхүүр үг гарч ирсэн байна. Энэ тохиолдолд компайлар автоматаар myInt, myBool, myString-д харгалзан System.Int32, System.Boolean, System.String санах ойн хувиарлалт хийдэг.<br />Одоо массив, ерөнхий төрөл мөн хэрэглэгчийн тодорхойлсон төрөл дээр хэрхэн ашиглахыг хүснэгт-3д харууллаа.<br />static void DeclareImplicitVars(){...// Зарим далд өгөгдлын төрөлтэй дотоод хувьсагчvar evenNumbers = new int[] { 2, 4, 6, 8 };var myMinivans = new List();var myCar = new SportsCar();Console.WriteLine(quot;
evenNumbers is a: {0}quot;
, evenNumbers.GetType().Name);Console.WriteLine(quot;
myMinivans is a: {0}quot;
, myMinivans.GetType().Name);Console.WriteLine(quot;
myCar is a: {0}quot;
, myCar.GetType().Name);}<br />Хүснэгт- 3. Далд хувьсагчийг бусад өгөгдлийн төрөлд ашиглах нь<br />Уг жишээнд Системийн жагсаалт, массив өгөгдлийн төрөл болон хэрэглэгчийн тодорхойлж өгсөн SportsCar төрлийн зарлалт, болон утга оноолтыг харуулсан байна. Зураг-3 DeclareImplicitVars() функцыг ажиллуусан үр дүнг харууллаа.<br />Зураг-3 DeclareImplicitVars() гаралтын үр дүн<br />Foreach дэх var төрөлтэй хувьсагч<br />Далд төрөл нь int массиван var төрлийн хувьсагчид дараалсан давталтанд хэрхэн хандахыг хүснэгт-4д харуулав.<br />static void VarInForeachLoop(){var evenNumbers = new int[] { 2, 4, 6, 8 };// “var” foreach давталданд ашиглах нь .foreach (var item in evenNumbers){Console.WriteLine(quot;
Item value: {0}quot;
, item);}}<br />Хүснэгт- 4. “var” foreach давталтанд ашиглах нь<br />Мөн давталт дотроо хүснэгтийн төрлийг хатуугаар зааж өгч гүйх боломжтой хүснэгт-4 ийн кодыг ийм байдалд өөрчилснөөр харуулбал(Хүснэгт-5).<br />static void VarInForeachLoop(){var evenNumbers = new int[] { 2, 4, 6, 8 };// System.Int32 төрлийг хатуугаар заасан байна.foreach (int item in evenNumbers){Console.WriteLine(quot;
Item value: {0}quot;
, item);}}<br />Хүснэгт- 5. foreach давталтанд төрөл хатуугаар заах<br />Далд төрөлтэй хувьсагч дахь хязгаарлагдмал байдал<br />Бид уг хувьсагчийг method болон propterty-д зөвхөн дотоод хувьсагчын хүрээнд л ашиглаж болно. Мөн var түлхүүр үгийг функцийн буцаах утга, параметр, field –үүдэд хэрэглэвэл алдаатай(Хүснэгт-6).<br />class ThisWillNeverCompile{//field өгөгдөлд ашигласан, алдаа!private var myInt = 10;// буцаах утга болон параметерт хэрэглэсэн, алдаа!public var MyMethod(var x, var y){}}<br />Хүснэгт- 6. Алдаатай код<br />Бусад хориглолт болон байж болох хувилбаруудыг хүснэгт-7д жишээгээр харууллаа.<br />//Утга олгоогүй, алдаа!var myData;//Зарлалтын үед утга олгоогүй, алдаа!var myInt;myInt = 0;//Null утга олгосон, алдаа!var myObj = null;//Утга олголгдсоны дараа заалт төрөлтэй болох учир энд ямар нэгэн алдаа үүсэхгүйvar myCar = new SportsCar();myCar = null;// Зөв!var myInt = 0;var anotherInt = myInt;string myString = quot;
Wake up!quot;
;var myData = myString;//буцаах утгын төрөл нь int бөгөөд далд төрөл нь таарч байна, зөв!static int GetAnInt(){var retVal = 9;return retVal;}<br />Хүснэгт- 7. Зарим алдаатай болон зөв бичлэг<br />Далд төрөлтэй дотоод массив<br />Хүснэгт-8 жишээгээр далд төрөлтэй массиван хувьсагчийн хэрхэн заралхыг харууллаа.<br />static void DeclareImplicitArrays(){// int[].var a = new[] { 1, 10, 100, 1000 };Console.WriteLine(quot;
a is a: {0}quot;
, a.ToString());// double[].var b = new[] { 1, 1.5, 2, 2.5 };Console.WriteLine(quot;
b is a: {0}quot;
, b.ToString());// string[].var c = new[] { quot;
helloquot;
, null, quot;
worldquot;
 };Console.WriteLine(quot;
c is a: {0}quot;
, c.ToString());// SportsCar[].var myCars = new[] { new SportsCar(), new SportsCar() };Console.WriteLine(quot;
myCars is a: {0}quot;
, myCars.ToString());Console.WriteLine();//System.Object төрлийн массивыг үүсгэх боломжгүй. Хувьсагчийн төрөл холилдно, алдаа!//Компайларын алдаа гарнаvar d = new[] { 1, quot;
onequot;
, 2, quot;
twoquot;
, false };}<br />Хүснэгт- 8. Далд төрөлтэй массив<br />Далд төрөлтэй хувьсагчыг LINQ технолгид ашигладаг учир нь query илэрхийлэлийг буцаах утга нь тодорхойгүй байдаг бөгөөд үүнийг далд төрөлтэй хувьсагч ашиглан барьж авдаг.<br />
Lecture3
Lecture3
Lecture3
Lecture3
Lecture3

More Related Content

What's hot (20)

Лекц №12
Лекц №12Лекц №12
Лекц №12
 
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5
 
Vb.net mon1
Vb.net mon1Vb.net mon1
Vb.net mon1
 
U.cs101 лаборатори 8
U.cs101 лаборатори 8U.cs101 лаборатори 8
U.cs101 лаборатори 8
 
Lecture4
Lecture4Lecture4
Lecture4
 
Ci hel
Ci helCi hel
Ci hel
 
203lab1
203lab1203lab1
203lab1
 
Mathcad beginning-part1
Mathcad beginning-part1Mathcad beginning-part1
Mathcad beginning-part1
 
Лекц №4
Лекц №4Лекц №4
Лекц №4
 
си хэлний ойлголт
си хэлний ойлголтси хэлний ойлголт
си хэлний ойлголт
 
онол
онолонол
онол
 
Програмчлалын хэл
Програмчлалын хэлПрограмчлалын хэл
Програмчлалын хэл
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
 
Se304 lec8
Se304 lec8Se304 lec8
Se304 lec8
 
Лекц №6
Лекц №6Лекц №6
Лекц №6
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
 
Dynamic web 5
Dynamic web 5Dynamic web 5
Dynamic web 5
 
лекц-3
лекц-3лекц-3
лекц-3
 
си хэл 10
си хэл 10си хэл 10
си хэл 10
 

Viewers also liked

Lecture11
Lecture11Lecture11
Lecture11orgil
 
Lecture9
Lecture9Lecture9
Lecture9orgil
 
Word2007 insert text
Word2007 insert textWord2007 insert text
Word2007 insert textorgil
 
Lecture11
Lecture11Lecture11
Lecture11orgil
 
Zavkhan
ZavkhanZavkhan
Zavkhanorgil
 
Word2007 insert illustrations
Word2007 insert illustrationsWord2007 insert illustrations
Word2007 insert illustrationsorgil
 
Word2007 insert illustrations
Word2007 insert illustrationsWord2007 insert illustrations
Word2007 insert illustrationsorgil
 
Excel2007insert illustrations
Excel2007insert illustrationsExcel2007insert illustrations
Excel2007insert illustrationsorgil
 
Test7
Test7Test7
Test7orgil
 

Viewers also liked (10)

Lecture11
Lecture11Lecture11
Lecture11
 
Bd4
Bd4Bd4
Bd4
 
Lecture9
Lecture9Lecture9
Lecture9
 
Word2007 insert text
Word2007 insert textWord2007 insert text
Word2007 insert text
 
Lecture11
Lecture11Lecture11
Lecture11
 
Zavkhan
ZavkhanZavkhan
Zavkhan
 
Word2007 insert illustrations
Word2007 insert illustrationsWord2007 insert illustrations
Word2007 insert illustrations
 
Word2007 insert illustrations
Word2007 insert illustrationsWord2007 insert illustrations
Word2007 insert illustrations
 
Excel2007insert illustrations
Excel2007insert illustrationsExcel2007insert illustrations
Excel2007insert illustrations
 
Test7
Test7Test7
Test7
 

Similar to Lecture3

Similar to Lecture3 (20)

2
22
2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
Access lec2
Access lec2Access lec2
Access lec2
 
Лаборатор-3
Лаборатор-3Лаборатор-3
Лаборатор-3
 
Access Table
Access TableAccess Table
Access Table
 
Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
203lec2
203lec2203lec2
203lec2
 
Video lab1-web
Video lab1-webVideo lab1-web
Video lab1-web
 
Lec3
Lec3Lec3
Lec3
 
Gosexem asuult 09
Gosexem asuult 09Gosexem asuult 09
Gosexem asuult 09
 
Лабораторийн ажил № 1
Лабораторийн ажил № 1Лабораторийн ажил № 1
Лабораторийн ажил № 1
 
U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
 
Lab4 Report
Lab4 ReportLab4 Report
Lab4 Report
 
If presentation
If presentationIf presentation
If presentation
 
Lekts 5
Lekts  5Lekts  5
Lekts 5
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
database 13-14
database 13-14database 13-14
database 13-14
 
Lecture2
Lecture2Lecture2
Lecture2
 

More from orgil

Bodlogo
BodlogoBodlogo
Bodlogoorgil
 
Its150 l3
Its150 l3Its150 l3
Its150 l3orgil
 
Its150 l2
Its150 l2Its150 l2
Its150 l2orgil
 
Its150 l1
Its150 l1Its150 l1
Its150 l1orgil
 
Test
TestTest
Testorgil
 
Example excel2007
Example excel2007Example excel2007
Example excel2007orgil
 
Test7
Test7Test7
Test7orgil
 
Test6
Test6Test6
Test6orgil
 
Bodlogiin code
Bodlogiin codeBodlogiin code
Bodlogiin codeorgil
 
Bodlogo
BodlogoBodlogo
Bodlogoorgil
 
Bodlogo
BodlogoBodlogo
Bodlogoorgil
 
Bodlogo
BodlogoBodlogo
Bodlogoorgil
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007orgil
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007orgil
 
Test5
Test5Test5
Test5orgil
 
Test7
Test7Test7
Test7orgil
 
Test7
Test7Test7
Test7orgil
 
Test7
Test7Test7
Test7orgil
 
Test6
Test6Test6
Test6orgil
 

More from orgil (20)

Bodlogo
BodlogoBodlogo
Bodlogo
 
Its150 l3
Its150 l3Its150 l3
Its150 l3
 
Its150 l2
Its150 l2Its150 l2
Its150 l2
 
Its150 l1
Its150 l1Its150 l1
Its150 l1
 
Bd
BdBd
Bd
 
Test
TestTest
Test
 
Example excel2007
Example excel2007Example excel2007
Example excel2007
 
Test7
Test7Test7
Test7
 
Test6
Test6Test6
Test6
 
Bodlogiin code
Bodlogiin codeBodlogiin code
Bodlogiin code
 
Bodlogo
BodlogoBodlogo
Bodlogo
 
Bodlogo
BodlogoBodlogo
Bodlogo
 
Bodlogo
BodlogoBodlogo
Bodlogo
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007
 
Test5
Test5Test5
Test5
 
Test7
Test7Test7
Test7
 
Test7
Test7Test7
Test7
 
Test7
Test7Test7
Test7
 
Test6
Test6Test6
Test6
 

Lecture3

  • 1.