9-mavzu. Номлар фазоси


Download 32.93 Kb.
bet1/4
Sana16.06.2023
Hajmi32.93 Kb.
#1502953
  1   2   3   4
Bog'liq
9 м Номлар фазоси Синфларни бошқа файлда эълон қилиш


9-mavzu. Номлар фазоси
Номлар фазоси бир нечта боғлиқли класслар ва бошқа типларни ўзаро бирлаштириш учун ишлатилади. Номлар фазоси мантиқий ҳисобланиб, физик гуруҳлаш ҳисобланмайди. C# тилида класс ҳосил килингач, уни бирор номлар фазосига бириктириш мумкин бўлади.
namespace CustomerPhoneBook
{
using System;
public struct Subscriber
{
public long CustomerID;
public string FirstName;
public string MiddleName;
public string LastName;
public decimal Balance;
}
}
Типни бирор номлар фазосига бириктириш орқали унинг олдига ном қўйиб қўлланилади. Номлар фазосини ичма-ич жойлаштириш орқали типларнинг иерархик тузилмаси ҳосил қилинади.
namespace Wrox
{
namespace PeofessionalCSharp
{
namespace Chapter03
{
class NamespaceExample
{
// класс коди
}
}
}
}
Ҳар бир номлар фазоси ичида бошқа номлар фазоси жойлашган. Улар номларнинг ўзаро нуқта орқали ёзилади. Шундай қилиб, ҳосил қилинган NamespaceExample класси мансуб номлар фазоси - Wrox.ProfessionalCSharp.Chapter03.NamespaceExample.
using оператори
Номлар фазосининг узун бўлганлиги боис, уларни дастур кодида фақат ёзиш бир қанча қийинчиликларни ҳосил қилади. Аммо C# тилида класс номини қисқартма шаклида ёзиш мумкин. Бунинг учун файлнинг юқори қисмида номлар фазосини using калит сўзи орқали чақириш лозим. Ушбу ёзувдан сўнг дастур матнида қисқартма номни ишлатиш мумкин.
// 1 файл
// кискартма суздан фойдаланмасдан тулик ёзувни ёзиш лозим эди
System.Int32 a;
// 2 файл
using System;
Int32 a;
using калит сўзидан кейин ёзилган иккита номлар фазоси бир хил номли типларга эга бўлса, уларни ишлатишда тўлиқ номидан фойдаланиш лозим. Масалан, NamespaceExample номли класс иккита номлар фазосида аниқланган бўлсин:
Wrox.ProfessionalCSharp.Chapter03 ва Wrox.ProfessionalCSharp.Chapter04:
using Wrox.ProfessionalCSharp.Chapter03;
using Wrox.ProfessionalCSharp.Chapter04;
namespace Wrox.ProfessionalCSharp
{
class Test
{
public static int Main()
{
// NamespaceExample NSEx = new NamespaceExample();
// ушбу сатр компиляция килинмайди

// Чунки, номлар фазосининг иккаласида хам


// NamespaceExample класси мавжуд
// Ушбу хол учун номлар фазосини тулик курсатиш
Chapter03.NamespaceExample NSEx =
new Chapter03.NamespaceExample();
return 0;
}
}
namespace Chapter03
{
class NamespaceExample
{
// класс коди
}
}
namespace Chapter04
{
class NamespaceExample
{
// класс коди
}
}
}
C# дастурлари кўпчилигининг бошида using System оператори келтирилган. System номлар фазосида CTS типлари жойлашган бўлиб, ўзида .NET тизимининг кўпгина функционалликларини сақлайди. Консол киритиш ва чиқариш амаллари ҳам ушбу номлар фазосида жойлашган.
using калит сўзи дастур бошида жойлашганлиги боис уни C++ даги include калит сўзига ўхшатиш мумкин. Аммо С++ тилида include калит сўзи орқали физик файл билан боғланиш ҳосил қилинади. C# тилида эса using калит сўзи орқали мантиқий номлар фазоси чақирилади.

Download 32.93 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling