Нэрийн глобал орон зай

Төслийн кодийн файл дахь ямар нэгэн нэрийн орон зайг ашиглах хэрэгтэй бол ашиглах гэж буй бүх файлд түүнийг анхдагчаар холбон оруулах хэрэгтэй болно.
Жишээ нь төсөлд кодийн гурван файл байлаа

гэж үзье.

Base.cs файлд Base орон зайд

namespace Base;
class Company
{
    string title;
    public Company(string title) => this.title = title;
    public void Print() => Console.WriteLine($"Компан: {title}");
}

Company класс тодорхойлогдсон. Харин Person.cs файлд тодорхойлогдсон Person класс

using Base;
 
class Person
{
    string name;
    Company company;
    public Person(string name, Company company)
    {
        this.name = name;
        this.company = company;
    }
    public void Print()
    {
        Console.WriteLine($"Нэр: {name}");
        company.Print();
    }
}

Company классийг ашиглана. Person класст Company классийг ашиглахын тулд түүний орон зайн нэрийг using Base гэж оруулан ирсэн. Program.cs класст Person, Company классуудыг ашиглана.

using Base;
 
Company microsoft = new("Microsoft");
Person tom = new("Tom", microsoft);
tom.Print();

Энд Company классийг ашиглахын тулд дахиад л using Base гэж нэийн орон зайг оруулан ирнэ.
Base (эсхүл ямар нэгэн өөр) орон зайг оруулан ирэх файлууд олон байвал энэ нь тийм ч эвтэйхэн биш нь тодорхой. .NET 6 -д үүнд зориулагдсан нэрийн глобал орон зай гэсэн ойлголтыг оруулан ирсэн. Үүний тулд аль нэгэн файлд зохих директивийг бичихэд хангалттай.

global using оруулан_ирэх_нэрийн_орон_зай;

Тэгвэл Program.cs файлыг дараах

global using Base;
 
Company microsoft = new("Microsoft");
Person tom = new("Tom", microsoft);
tom.Print();

байдлаар өөрчилье. Одоо Base нэрийн орон зай төслийн бүх кодийн файлд холбогдох учраас Person.cs файлаас using Base; мөрийг хасаж болно.

Глобал нэрийн орон зайг тусдаа файлд тодорхойлох

Дээр дурдсан аргаар нэрийн глобал орон зайг аль нэгэн файлд заан өгөх нь бас дутагдалтай. Program.cs файлд заагаад байж болох ч нэрийн глобал орон зайг тусд нь тодорхойлоод төслийн аль нэгэн газарт оруулан ирэх нь бүр ч энгийн. Үүний тулд Visual Studio 2022C# -ийн кодийн шинэ файлыг нэмээд түүнд төсөлд оруулан ирэх нэрийн орон зайнуудыг тодорхойлно. Жишээ нь төсөлд GlobalUsings.cs нэртэй файл нэмээд түүнд

зурагт үзүүлсэн агуулгыг оруулан өгье. Одоо энэхүү нэрийн орон зайн багцууд төслийн бүх файлд автоматаар холбогдох тул бид global using Base; -ийг өөр ямар нэгэн файлд оруулан өгөх

албагүй болсон.

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

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

Entity Framework -ийн талаарх өмнөх хичээлүүдэд бид MSSQL серверт энгийн өгөгдлийн сан үүсгээд түүнд ADO NET -ээр хандах стандарт арга болон EF технологийг ашиглан хандахыг үзсэн. Entity Framework -ийг ашиглан өгөгдлийн санд хандах код нь стандарт аргаас хамаагүй бага бөгөөд уншин ойлгоход амархан байсныг харсан. Одоо програмын кодоос EF технологиор өгөгдлийн санд хандаж болох аргуудын талаар авч үзье.

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

Юуны өмнө ОХП-ын хэлүүд болон C# хэлэнд байдаг тодорхой суурь ухагдхууны талаар ойлголтыг авах хэрэгтэй. ОХП-ын хэлэнд бараг бүх обьектууд өгөгдлийн төрлүүд байдаг.

  • Хувьсагч гэдэг нь төрөл бүрийн утгуудыг авч болдог дараа нь тэдгээрийг өөр төрлийн утгаар өөрчилж болдог хэлний элемент юм. Иймээс түүнийг хувьсагч гэж нэрлэдэг. Тогтмол утга гэж бас байдаг. Тогтмол утга нь хувьсагчаас ялгаатай нь өөрийн утгаа компиляц хийх үед ганц удаа аваад тухайн утгаа дахин өөрчилдөггүй. Хувьсагч гэдгийг ямар нэгэн зүйлийг эсхүл тухайн зүйл хаана байгааг заах мэдээллийг хадгалж болдог хайрцагтай зүйрлэж болно.
  • Өгөгдлийн төрөл гэдгийг хувьсагч авч болох утгуудын олонлог гэж ойлгоно. Хэрвээ бид хувьсагчийг бүхэл тоон төрлийнх гэж заавал түүнд зөвхөн бүхэл тоог эсхүл логик төрлийнх гэвэл зөвхөн логик утгыг авна гэсэн үг. Өөрөөр хэлбэл хувьсагч өөрийн төрөлд багтах утгуудын олонлогоос л утгаа авах ёстой гэсэн үг.
  • Обьект гэдэг нь хувьсагч авсан тодорхой утга эсхүл тухайн утгыг авах холбоосын утгыг хувьсагчид олгосонг хэлнэ. Энэ ойлголт нь ОХП-ын үндсэн гол ойлголт байдаг.

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

C# хэл дээрх бүх програмийн код .cs өргөтгөлтэй файлд агуулагдана. Visual Studio -гоор үүсгэсэн төсөлд анхдагчаар Program.cs нэртэй нэг файл л үүснэ.  

Програмыг ажлуулахад анхдагчаар Program.cs файл ажилладаг. Шаардлагатай бол төсөлд C# -ийн бусад файлуудыг нэмж болно.

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

Виртуал аргууд, шинжүүд хичээлд виртуал аргуудыг тодорхойлох, дахин тодорхойлохыг үзсэн. Суурь классаас өвлөн авсан функцтоналуудыыг өөрчлөх өөр арга бол нуух (shadowing / hiding) юм. Арга, шинжүүдийг нуух нь үнэндээ суурь классийн арга эсхүл шинжүүдтэй нэр, параметрүүдийн багцаар тохирох арга, шинжийг удамшсан класст тодорхойлох юм. Классийн гишүүнийг нуухдаа new түлхүүр үгийг хэрэглэдэг.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

 

Аяга, стакан, ваар, лаазанд сүү, ундаа, квас, ус байжээ. Аяганд ус, сүү байхгүй, ундаатай сав ваар болон квастай савны дунд, лаазанд ундаа, усны аль нь ч байхгүй, стакан лааз ба сүүтэй савтай зэрэгцэн байрласан бол ямар саванд ямар шингэнийг хийсэн бэ.

Жич: Маш сонирхолтой гоё бодлого. Оролдоод үзээрэй.

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

 

илэрхийллийн хялбарчил.

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