VS, анхны програм

C# хэл дээр програм зохиоход бидэнд юу хэрэгтэй вэ?

  • Програмийн кодоо бичих текст засварлагч.
  • Програмийн кодийг exe өргөтгөлтэй файлд багцлах компилятор /хөрвүүлэгч/
  • Програмийн компиляц, цаашдын ажиллагаанд хэрэгтэй .NET фреймворк

хэрэгтэй.

Програмийн кодийг бичих, тестлэн зүгшрүүлэх ажиллагааг хөнгөвчлөх үүднээс ихэнхдээ тусгай боловсруулалтын орчинг ашигдладаг. Тухайлбал Visual Studio.

C# дээр програм зохиохдоо үнэгүй, ажиллагааны бүрэн боломжтой Visual Studio Community 2022 боловсруулалтын орчинг ашиглана.

Санамж: Visual Studio 2019 болон түүний өмнөх хувилбарууд .NET 6 ба C# 10 -ыг дэмждэггүй тул заавал Visual Studio 2022 хэрэгтэй.

Суулгагчийг /installer/ татан аваад түүнийг ажлуулна. Visual Studio Community 2022 суулгах ажиллагаа ердийн програм суулгахтай ижил боловч таниас Visual Studio -той цуг суулгах компонентийг сонгохыг санал болгосон цонх гарч ирнэ. Visual Studio олон тооны хэл болон платформоор програм боловсруулах боломжтой маш функционал ихтэй боловсруулалтын орчин гэдгийг дурдая. Visual Studio боловсруулалтын орчинд C# , .NET 6 төслийг дэмжүүлэхийн тулд ASPNET and web development компонентийг сонгоход хангалттай. Илүү олон бүр бүх компонентийг сонгож болох ч хатуу дискнйи чөлөөт зайгаа тооцоорой. Олон сонголт хийх тусам програм диск дээр илүү их зай эзлэх болно. Цааш суулгагч таны компьютерт хэрэгцээт бүхий л хэрэгслүүдийг суулгана.
Машиныхаа системийн бус диск дээр програмийн кодоо хадгалах хавтасыг үүсгэн өгөөрэй. Би G:\munkh\project C# хавтасыг ашиглахаар үүсгэн өгсөн.
Боловсруулалтын орчинг суулгаж дууссаны дараа эхний програмаа зохиохын тулд Visual Studio -ийг ачааллахад нээгдэх цонхноос Create a new project (Шинэ төсөл үүсгэх) -ийг сонгоно.

Дараагийн цонхонд төслийн төрлөөр Console App -ийг сонгоорой. Өөрөөр хэлбэл бид C# хэл дээр консолийн програм зохионо гэсэн үг.

Програмийн төрлөө сонгоод Next товчийг дарахад нээгдэх дараагийн цонхонд төслийн /програмийн/ нэр, байрших хавтасны сонголтыг хийнэ.

Төслийн нэрийг програмийн санал болгосноор үлдээе. Энд та өөрийн нэрийг өгч болно гэдэг нь ойлгомжтой. Location талбарт өөрийн үүсгэсэн хавтасаа заан өгөөрэй. Одоо Next товчийг дарна.

Дараагийн цонхонд төсөлд ашиглах .NET -ийн хувилбарыг сонгоод төслийг үүсгэх Create (үүсгэх) товчийг дарахад Visual Studio төслийг үүсгээд нээнэ.

Төвийн том талбар бол текст засварлагч бөгөөд түүнд боловсруулалтын орчин анхдагчаар үүсгэсэн C# код гарч ирнэ. Баруун хэсэгт төслийн бүтцийг харуулсан Solution Explorer цонх байрлана. Одоогоор Visual Studio үүсгэсэн анхдагч бүтэц харагдаж байгаа. Dependencies бол төсөлд анхдагчаар нэмэгдсэн dll багцыг агуулсан хэсэг. Энэ багцад C# ашиглах .NET -ийн классуудын санг агуулагдана. Гэхдээ бүх багцууд дандаа хэрэгтэй байгаад байдаггүй. Цаашдаа хэрэггүй сангуудыг хасах эсхүл нэмэх боломжтой. Цааш төвийн цонхонд код нь нээгдсэн Program.cs байрлана. Visual Studio файлд ердөө хоёр мөр кодийг үүсгэсэн байгаа.

// тэмдэгтээр эхэлсэн эхний мөр бол кодийн тайлбар юм.
Хоёрдахь Console.WriteLine("Hello World!"); мөр бол програмийн код. Энэ мөр консолд "Hello World!" мөрийг үзүүлнэ. Хэдийгээр програм ганцхан мөр кодтой ч F5 эсхүл хэрэслүүдийн самбар дахь ногоон товчийг даран ажиллууж болох программ. Програмийг ажлуулбал консолд "Hello World!" мөрийг үзүүлнэ.

Ямар нэгэн товчийг дарвал консолийн цонх хаагдана. Одоо Program.cs -ийн кодийг

Console.Write("Your name: ");
string? name = Console.ReadLine();        // нэрээ оруулах
Console.WriteLine($"Hi {name}");     // нэрийг консолд үзүүлэх

болгон өөрчилье. Кодийн хоёрдахь мөр гараас өгөгдөл оруулахыг хүснэ. Console.Write() арга консолд түүнд дамжуулсан мөрийг үзүүлнэ. Манай тохиолодолд энэ нь "Your name: " мөр юм.
Хоёрдахь мөрөнд хэрэглэгч консолоос мэдээлэл оруулах мөрийн name хувьсагчийг тодорхойлсон. name хувьсагчид консолоос оруулсан тэмдэгтийг унших Console.ReadLine() аргын үр дүнг олгосон. Өөрөөр хэлбэл хэрэглэгч консолоос оруулсан тэмдэгтүүд name хувьсагчид орно гэсэн үг.
string? name илэрхийлэл string? төрөлтэй name хувьсагч тодорхойлогдсонг заана. Өөрөөр хэлбэл мөр хадгалах боломжтой хувьсагч гэсэн үг. Энд string нь хувьсагч мөр төрлийн утга хадгалахыг харин ? нь хувьсагч null утгыг хадгалж болохыг зааж байгаа юм. Өөрөөр хэлбэл хувьсагч утгагүй байж болохыг заасан хэрэг.
Console.WriteLine($"Hi {name}"); мөр оруулсан нэрийг консолд үзүүлнэ. name хувьсагчийн утгыг консолд үзүүлэх мөрөнд оруулахын тулд {} хаалтыг хэрэглэнэ. Ингэснээр WriteLine арга консолд мөрийг үзүүлэхэд {name} илэрхийлэл name хувьсагчийн утгаар солигдох юм. Хувьсагч доторх утгыг ийм байдлаар мөр дотор оруулан консолд гаргахын тулд WriteLine аргын үзүүлэх мөрийн өмнө $ /долларын тэмдэг/ -ийг заах хэрэгтэй.
Програмийг ажлуулбал

гэж ажиллана. Ингээд бид анхны програмаа зохиолоо. Програмийн exe файл төслийг хадгалсан хавтасны bin\Debug\net6.0 хавтаст байрлана. Файл төслийн нэрээр нэрлэгдэх ба exe өргөтгөлтэй байна. Одоо энэ файлыг Visual Studio -гүйгээр эсхүл .NET 6 суугдсан өөр компьютерт хуулан ажлуулах боломжтой.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 425 Бүртгүүлэх

Хааяа өөр өөр параметрүүдийн багцтай нэг аргыг үүсгэх шаардлага гардаг. Ирсэн параметрүүдээс хамааран аргын тодорхой хэрэгжүүлэлтийг хэрэглэнэ. Ийм боломжийг аргын хэт ачаалал (method overloading) нэрлэдэг. overloading нэрийн хэт ачаалал орчуулга сайнгүй болсон байх талтай. Иймээс нэрийг overloading гээд тогтоогоод явах нь илүү ч байж болно.  
C# хэлэнд класст өөр өөр сигнатуртай /тодорхойлогч/ нэг ижил нэртэй олон аргыг үүсгэх боломжтой. Сигнатур гэж юу вэ? Сигнатур дараах зүйлүүдээс бүрдэнэ.

  • Аргын нэр
  • Параметрүүдийн тоо
  • Параметрүүдийн төрлүүд
  • Параметрүүдийн дараалал
  • Параметрүүдийн модификаторууд

Гэхдээ параметрүүдийн нэрүүд сигнатурт орохгүй.

  Нээгдсэн тоо: 208 Нийтийн

Хичээлээр анх IBM боловсруулан гаргасан Model View Presenter (MVP) - хэвийн талаар үзнэ. MVP нь MVC загвараас үүдэлтэй боловч програмын зохион байгуулалт талаасаа нилээд өөр хандлагатай. MVP паттерн MVC -г бодвол үзүүлбэр моделтой нягт холбоогүй байдаг онцлогтой. Доор зурагт MVP хэвийн бүтцийг харууллаа.

patt_04_01

Зургаас харахад контролерын оронд Presenter орж ирэн хэрэглэгчийн оруулсан өгөгдлийн шилжилт, загварын өөрчлөлтийг үзүүлбэрт тусгах үүргийг хариуцах болсон нь харагдана.

  Нээгдсэн тоо: 366 Төлбөртэй

Боловсруулагчид C# дээр програм зохиохдоо голдуу Visual Studio эсхүл ямар нэгэн JetBrains компаний Rider мэтийн IDE (integrated development environment) боловсруулалтын хэрэгслийг ашигладаг. Гэхдээ бүхий л IDE -нууд боловсруулалтын ажиллагааг хөнгөвчилж өгдөг ч програм үүсгэх ажиллагааны олон жижиг зүйлүүдийг цаанаа хийдэг. Үнэн хэрэгтэй бид зөвхөн .NET CLI -ийн боломжийг ашиглан боловсруулалтын орчингүйгээр ажиллах боломжтой.

  Нээгдсэн тоо: 1469 Төлбөртэй

Бид өмнөх хичээлээр битүүмжлэгдсэн, статик классуудын талаар үзсэн. ОХП-д классууд чухал үүрэгтэй нь ойлгомжтой. Иймээс класуудын төрлүүдийг мэдээд зогсохгүй тэдгээрийг хаана хэрхэн ашиглахыг маш зөв ойлговол таны код цэгцтэй, ойлгомжтой, өөрчлөлт, шинэчлэл хийхэд уян хатан болдог. 

Програмчлалын аргачлал Singleton

Статик арга, классыг хэрхэн ашиглах жишээ болгоод Singleton гэдэг өргөн дэлгэрсэн програмчлалын  аргачлалыг авч үзье. Програм зохиогчдын дунд энэхүү аргачлалын талаар эерэг, сөрөг янз бүрийн үзэл бодлууд байдаг гэдгийг хэлэх нь зүйтэй.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 36

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 40

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 58

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 177

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 226

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 232

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 265

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 257

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 341

 
Энэ долоо хоногт

олон гишүүнтийг үржигдхүүн болгон задал.

Нээгдсэн тоо : 819

 

тэгшитгэлийг бод.

Нээгдсэн тоо : 931

 

Тоног төхөөрөмжийн сайжруулалтын үр дүнд ажилчны хөдөлмөрийн бүтээмж жилд хоёр удаа нэг ижил хувиар дээшилжээ. Хэрвээ ажилчин нэг ижил хугацаанд өмнө нь 2500 х.н харин одоо 2809 х.н бутээгдхүүн хийдэг болсон бол хөдөлмөрийн бүтээмж өсөх бүрдээ хэдэн хувиар өссөн бэ?

Нээгдсэн тоо : 385