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 суугдсан өөр компьютерт хуулан ажлуулах боломжтой.

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

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

Хэвүүдийг /паттерн/ судлахын өмнө обьект хоорондын үндсэн харилцааг ойлгосон байх нь асуудлын ухагдхуун хоорондын холбоог ойлгон тэдгээрийг хэвүүдэд ашиглахад танд туслана. Обьект хоорондын харилцаанаас удамшилт /inheritance/ , хэрэгжүүлэлт /implementation/, ассоциац /association/, композиц /composition/, агрегац /aggregation/ гэсэн үндсэн харилцаануудыг онцолж болно.

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

Манай энэ удаагийн хичээлийн сэдэв бол олонлог. C# -д олонлогийн хэдэн төрлүүд байдаг. Олонлогийн тухай ойлголт интерфейс ба ерөнхийлөлтэй их холбоотой тул хичээлийг үзэхээс өмнө интерфейс , ерөнхийлөл сэдвийн хичээлүүдийг судлахыг зөвлөе.

Олонлог гэж юу вэ?

C# -д олонлогийг ямар нэгэн обьектуудын багц гэж ойлгоно. Жишээ нь бүхэл тоонуудын массив int[] a; бол бүхэл тоонуудыг багц учраас олонлог. list<string> lst; - мөрүүдийн жагсаалт бас л олонлог. Энд ухагдхууны хувьд тодорхой төөрөгдөл үүсдэг. Ном, интернет нийтлэлүүдэд цуглуулга /collection/, жагсаалтын талаар авч үзэхдээ тэдгээрийг олонлог гэж үзсэн байдаг. Үнэн хэрэгтээ цуглуулга /collection/, жагсаалт, дарааллууд бол олонлогийн тухайн тохиолдол юм. Эдгээрийн ялгааг бид хичээлээр үзэх болно.

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

Task классыг ашиглан үүсгэсэн нэмэлт урсгалд үүссэн алдааг боловсруулах хичээлийн үргэлжлэлийг нийтэллээ. Өмнөх хичээлд цуцлалтын маркерыг ашиглан алдааг барихыг үзсэн. Энд анхаарах зүйл бас бий. Учир нь олон програм зохиогчид ялангуяа эхлэн суралцагчид цуцлалтын маркерыг тийм ч зөв ашиглаад байдаггүй. Бид Task классын Status шинжид RanToCompletion , Cancelled , Faulted гэсэн үндсэн гурван утгууд байдагийг судлан тогтоосон.

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

Бид C# төрлийн бүрэлдхүүн хичээлүүдэд төрлийн Үйл явдлууд /Events/ ухагдхуунаас бусад гишүүдийг үзсэн. Иймээс энэ хичээлд Үйл явдлууд /Events/ ойлголтын талаар авч үзье. Үйл явдал делегат /delegate/ гэдэг ойлголт дээр суурилдаг учраас эхлээд делегат ухагдхууныг авч үзээд дараа нь үйл явдал гишүүний талаар авч үзье Delegate гэсэн үгийг монголчилбол "төлөөлөгч" гэж хэлж болох юм. Гэхдээ би делегат гэсэн нэрээр нь шууд ойлгон тогтоон авах нь илүү гэж үзлээ.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

Хоёр тойрог гадна талаараа шүргэлцсэн. Нэг тойргийн шүргэгч нь нөгөө тойргийнхоо төвийг дайран гарсан. Шүргэлтийн цэгээс хоёрдахь тойргийн төв хүртэлх зай нь энэ тойргийн радиусаас 3 дахин урт. Нэгдүгээр тойргийн урт хоёрдугаар тойргийн уртаас хэд дахин их вэ?

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

 

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

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

 

бол илэрхийллийн утгыг ол.

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