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

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

гэж үзье.

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; -ийг өөр ямар нэгэн файлд оруулан өгөх

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

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

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

Литерал нь өөрчлөгдөхгүй утгыг илэрхийлнэ. (хааяа тэдгээрийг тогтмолууд гэж ч нэрлэдэг.) Литералуудыг хувьсагчид утгаар өгч болдог. Логик, бүхэл тоон, бодит тоон, тэмдэгт, мөрийн литералууд байж болно. null түлхүүр үг тусдаа литералийг илэрхийлнэ.

Логикийн литералууд

true (үнэн), false (худал) гэсэн хоёр логик тогтмол бий.

Console.WriteLine(true);
Console.WriteLine(false);

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

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

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

Олон урсгалыг үүсгэн удирдах хичээлээр бид Invoke аргаар удирдлагыг нэмэлт урсгалаас үндсэн урсгалд хэрхэн шилжүүлэх талаар авч үзсэн. Invoke арга удирдлагыг нэмэлт урсгалаас үндсэн урсгалд шилжүүлэх цорын ганц зам биш. .NETSynchronizationContext гэдэг класс бий. Энэ класс нэг эсхүл олон урсгалыг барин тэдгээрийн хооронд удирдлагыг дамжуулах ажиллагааг хийдэг. Ерөнхийдөө Invoke арга хийдэгтэй ижил. Эндээс Invoke аргаар шийдэж болж байхад бас нэгэн класс байх ямар хэрэгтэй юм бэ? гэсэн асуулт гарч ирнэ.

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

switch/case бүтэц илэрхийллийн утгыг утгуудын багцтай харьцуулан утга тохирсон бол тодорхой кодийг биелүүлдэг.

switch бүтцийн албан ёсны тодорхойлолт

switch (илэрхийлэл)
{
    case утга1:
        илэрхийллийн утга утга1-тэй тохирох үед ажиллах код
        break;
    case утга2:
        илэрхийллийн утга утга2-тэй тохирох үед ажиллах код
        break;
    //.............
    case утгаN:
        илэрхийллийн утга утгаN-тэй тохирох үед ажиллах код
        break;
    default:
        илэрхийллийн утга утгуудын багцад байхгүй үед ажиллах код
        break;
}

switch түлхүүр үгийн араас хаалтад харьцуулах илэрхийллийг өгнө.

Класс ба структурт ердийн талбар, арга, шинжүүдээс гадна статик талбар, арга, шинжүүд байж болдог. Статик талбар, арга, шинжүүд…

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

 

Хичээлээр useState -тэй тун төстэй useRef хукийн талаар авч үзье. useRef хукийн онцлог ашиглалтыг компонент хэдэн удаа дахин…

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

 

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

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

 

Нийтлэлээр графикийн хэвүүдийн /GUI pattern/ түүхийг авч үзье. Боловсруулалтын графикийн хэвүүдийг 30 гаруй жилийн туршид боловсруулж байгаа бөгөөд…

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

 

Хааяа өөр өөр параметрүүдийн багцтай нэг аргыг үүсгэх шаардлага гардаг. Ирсэн параметрүүдээс хамааран аргын тодорхой хэрэгжүүлэлтийг хэрэглэнэ. Ийм…

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

 

Ямарч програмын ажиллагааны чухал хэсэг бол төрөл бүрийн мэдээллийн боловсруулалт, тэдгээртэй ажиллахтай холбоотой байдаг. Иймээс энэ хичээлээс vuejs

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

 

Хичээлээр react -ийн хукуудаас их өргөн ашиглагддаг useEffect -ийн талаар авч үзье. useEffect -ийн ажиллагааг судлах хуудасны кодийг

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

 

Илэрхийлэл бол математикийн хэлний үндэс болсон суурь ойлголтуудын нэг. Математикийн илэрхийллийг тооцооны алгоритм, аксиом, теорем, бодлогын нөхцлүүд гээд…

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

 

Програм зохиох бол нарийн төвөгтэй ажил. Ямар ч програмын хувьд өөрийн хийх ажлаа гүйцэтгэхийн чацуу цаашдаа хөгжих, ажлын…

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